home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / netmail / netg4.zip / NETMGR.DOC < prev    next >
Text File  |  1996-05-26  |  89KB  |  2,529 lines

  1.  
  2.  ===================================================================
  3.  
  4.             NetMgr - "The Swiss Army Knife for Netmail"
  5.  
  6.         Copy, move, delete, file, change and bounce netmail..
  7.  
  8.          (c) 1992,93,94,95,96  Gerard van Essen (2:281/527)
  9.  
  10.  ===================================================================
  11.  
  12.  
  13.  !  NetMgr uses the Squish MSGAPI by Scott Dudley.
  14.  
  15.  !  Squish is a trademark of Scott J. Dudley
  16.  
  17.  !  JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
  18.                        Mats Birch, Mats Wallin.
  19.                         ALL RIGHTS RESERVED.
  20.  
  21.  
  22.  NetMgr version               : 1.00.g4
  23.  Last update of this document : may 26, 1996
  24.  
  25.  Throughout the documentation, you will see items that are marked with a
  26.  'plus' sign, like this: {+}.
  27.  This indicated that the described feature is only available for
  28.  registered users of NetMgr.
  29.  
  30.  ┌──────────────┬─────────────────────────────────────────────────
  31.  │ Introduction │
  32.  └──────────────┘
  33.  
  34.  NetMgr is a program that will scan the messages in one or more NETMAIL
  35.  area(s), and analyse the headers of those messages. The messages can be
  36.  stored in *.MSG, Hudson, Squish or JAM format.
  37.  
  38.  NetMgr only scans NETMAIL areas, _not_ echomail areas. You can try to run
  39.  NetMgr on echomail areas, but unpredictable things can (and will) happen,
  40.  so don't do it!
  41.  
  42.  NetMgr will check if any of the headers meet the criteria specified in the
  43.  configuration file (a 'mask'), created by the user. If any of those
  44.  headers are found, NetMgr can perform several actions on that message,
  45.  like moving or copying it to another message area, deleting it, changing
  46.  it etc.
  47.  
  48.  
  49.  ┌─────────────────────────────────────┬─────────────────────────────
  50.  │ Copyright, license and disclaimer.. │
  51.  └─────────────────────────────────────┘
  52.  
  53.  *     "NetMgr" refers to the executables and documentation in the
  54.        original distribution archive. NetMgr is copyrighted material by
  55.        Gerard van Essen. It may only be used in agreement with the
  56.        conditions set out in this license agreement.
  57.  
  58.  *     You are entitled and encouraged to copy and distribute NetMgr,
  59.        provided you do not change the contents of the NetMgr archive or
  60.        the program itself, and no money or any other compensation is
  61.        asked or accepted for NetMgr (without written permission from the
  62.        author).
  63.        Distribution of modified or incomplete archives is prohibited.
  64.  
  65.  *     Although care has been taken to write and test a program that
  66.        does what this document states, the program is provided as is,
  67.        without warranty or guarantee of any kind, either expressed or
  68.        implied, as to the quality or performance of this program,
  69.        except that it will occupy disk space.
  70.  
  71.  *     The author, Gerard van Essen, will not be held liable to you or
  72.        anyone for (but not limited to) any direct, indirect, incidental
  73.        or consequential damages, including any lost profits, lost
  74.        savings which may result from the use or inability to use this
  75.        program.
  76.  
  77.        Gerard van Essen is in no way obligated to provide future
  78.        versions of, or support for this software.
  79.  
  80.        Your use of the program constitutes your agreement to this
  81.        license and disclaimer and your release of the author from any
  82.        form of liability or litigation.
  83.  
  84.  *     COMMERCIAL use of the program: you are a commercial user if you
  85.        make a profit from running NetMgr, or if you use NetMgr in a
  86.        commercial environment (i.e.. business, governmental organization,
  87.        association, school, foundation, or any other form of juridical
  88.        person). In case of doubt, contact the author.
  89.  
  90.  *     For NON-COMMERCIAL use, it is REQUIRED that you register the
  91.        program.
  92.        However, if you really cannot afford to register (mainly a concern
  93.        to 'eastern block' countries, the former USSR etc.), permission is
  94.        hereby granted to use an unregistered version.
  95.  
  96.        Remember, if you register, you are paying for something that you
  97.        already have! Registration does not mean you can force me to
  98.        implement new features that you like.
  99.  
  100.  *     For COMMERCIAL use of the program, you should always register
  101.        the program. You are, however, granted an evaluation period of
  102.        30 days. After these 30 days, you must either register the
  103.        program, or stop using it. Using an unregistered version of
  104.        NetMgr in a commercial environment for more than 30 days is
  105.        prohibited!
  106.  
  107.  *     You only have to register once. Your registration will also be
  108.        valid for all future releases of NetMgr.
  109.  
  110.  *     Registration is valid for all versions of NetMgr. At this moment,
  111.        there are DOS and OS/2 versions of the program available.
  112.        Registering NetMgr entitles you to run the DOS version, the OS/2
  113.        version, or both :-)
  114.  
  115.  *     A registration is PERSONAL. It cannot be transferred to other
  116.        parties. It could, however, be used in different places (but: by
  117.        the same PERSON). Think of it as a book in this regard: you can
  118.        take the book from your home to the office (and read it there).
  119.  
  120.  *     Versions of NetMgr prior to version beta 0.97 were freeware and could
  121.        not be registered. You may continue to use THESE OLDER VERSIONS
  122.        without registration, even in a commercial environment.
  123.  
  124.  *     The author reserves the right to change this license without
  125.        prior notice, for newer versions of the program.
  126.  
  127.  
  128.  ┌────────────────────────────────────┬─────────────────────────────
  129.  │ A 'MASK', NetMgr's driving force.. │
  130.  └────────────────────────────────────┘
  131.  
  132.  As mentioned in the short introduction, NetMgr will scan the headers of
  133.  all messages in a netmail area to see if a header meets the criteria that
  134.  are set by the user in NetMgr's configuration file. These criteria are
  135.  specified in a 'mask'.
  136.  
  137.  A 'mask' consists of six parts:
  138.  
  139.  fromname, fromaddress, toname, toaddress, subject, attributes
  140.    (1)        (2)         (3)      (4)       (5)       (6)
  141.  
  142.  So 6 parts, separated by a comma. In the config file you use the keyword
  143.  MASK to specify a mask:
  144.  
  145.  
  146.  MASK fromname, fromaddress, toname, toaddress, subject, attributes
  147.  
  148.  
  149.  NAME : fromname, toname
  150.  ───────────────────────
  151.  
  152.  A 'name' is just a string, leading and trailing spaces found in the config
  153.  file are stripped, spaces *within* a string are allowed.
  154.  So writing "   Gerard van Essen  " will be the same as "Gerard van Essen".
  155.  (Note that leading and trailing spaces are stripped, while the space
  156.  between "Gerard" and "van" is still there...)
  157.  
  158.  NetMgr will do a compare that is NOT case sensitive. In other words:
  159.  as far as NetMgr is concerned, "GERARD van ESSEN" is the same as "gerard
  160.  VAN essen" and the same as "GeRaRd VaN eSsEn".
  161.  
  162.  A name can start with a tilde (~). This indicates that you are not looking
  163.  for an exact match of the string, but that you are looking for a
  164.  substring. As long as the string you specify is located somewhere in the
  165.  name, it will be a match.
  166.  
  167.  So, if you specify '~essen' as a name, it will be a match if the name is
  168.  'Gerard van Essen', and also if it is 'Art van Essen' etc.
  169.  
  170.  A name can also start with an exclamation mark (!). This indicates that you
  171.  are looking for a string that does NOT match what you specify. So if you
  172.  specify '!Gerard van Essen', NetMgr will work on messages where the string
  173.  is NOT 'Gerard van Essen'.
  174.  
  175.  You can also combine the '~' and '!' tokens. The '!' MUST be always the
  176.  first token if you do that!
  177.  
  178.  For example: !~essen will look for string that do NOT contain 'essen'
  179.  anywhere in the string. In that case 'Gerard van Essen' will not be a
  180.  match, 'Art van Essen' will not be a match, but 'Nick Wirth' will be a
  181.  match.
  182.  
  183.  
  184.  SUBJECT
  185.  ───────
  186.  
  187.  A subject is just a string, exactly like a 'name'. Everything that applies
  188.  to a 'name' also applies to a 'subject'. See the paragraph above..
  189.  
  190.  
  191.  ADDRESS: fromaddress, toaddress
  192.  ───────────────────────────────
  193.  
  194.  An address is *always* full 4D (4 dimensions: zone, net, node, point),
  195.  write a '*' for any part you don't care about:
  196.  
  197.  
  198.  60:*/*.*     -   all messages coming from zone 60
  199.  2:281/527.*  -   msg from any point from 281/527, or .0
  200.  *:500/*.*    -   all messages from nodes/points in a net 500, any zone
  201.  2:281/527.0  -   only messages from 2:281/527.0
  202.  
  203.  Just one exception (to the "always 4D" rule): specifying just a '*' only
  204.  for the address is allowed (strictly speaking, it is not full 4D :-), and
  205.  is the same as *:*/*.*.
  206.  
  207.  An address can also start with an exclamation mark. That indicates that you
  208.  are looking for messages where the address does NOT match what you are
  209.  specifying here.
  210.  
  211.  For example: !2:*/*.* will let NetMgr work on all addresses that are NOT
  212.  zone 2. And !2:281/527.0 will let NetMgr work on all addresses that are NOT
  213.  2:281/527.
  214.  
  215.  
  216.  ATTRIBUTES
  217.  ──────────
  218.  
  219.  Attributes can be one or more of the following:
  220.  
  221.  p = private
  222.  c = crash
  223.  r = received
  224.  s = sent
  225.  a = attach
  226.  i = forward/intransit
  227.  o = orphan
  228.  k = kill
  229.  l = local
  230.  h = hold
  231.  f = file request
  232.  n = scaNned
  233.  d = Direct
  234.  u = Update request
  235.  q = return receipt reQuest
  236.  y = return receipt
  237.  m = iMmediate
  238.  t = TFS
  239.  e = KFS (erase)
  240.  z = Archive sent
  241.  2 = XX2, officially unused/reserved
  242.  b = is return receipt
  243.  g = confirm receipt request
  244.  $ = message is locked
  245.  % = JAM, zonegate bit
  246.  x = message is a FAX cover
  247.  
  248.  Special attributes to support nodelist lookups of node numbers:
  249.  
  250.  @ = Check destination address.
  251.  # = Check origination address.
  252.  
  253.  These two special attributes will be explained later.
  254.  
  255.  
  256.  ■ Important note:
  257.  
  258.  Several of these extra attributes can only be represented in the '^AFLAGS'
  259.  kludge (that is NOT supported by Squish, but is by Frontdoor and several
  260.  other programs), in some message base formats (like *.MSG and Squish).
  261.  
  262.  If you do NOT want to use this FLAGS kludge (because you use Squish in a
  263.  Binkley environment), you can put the keyword 'NOFLAGS' in your config.
  264.  This gives you the ability to use 'direct' (in the peculiar way that Squish
  265.  supports it).
  266.  
  267.  You can NOT use: IMM, TFS, KFS or Archive Sent in this ('NOFLAGS') mode for
  268.  Squish and *.MSG areas!
  269.  
  270.  NetMgr will NOT write out a FLAGS kludge in this ('NOFLAGS') mode, so
  271.  rewriting a message that has these FLAGS will make these FLAGS disappear!!
  272.  
  273.  The JAM message base format supports ALL attributes without any kludges.
  274.  
  275.  
  276.  Every attribute must have a '+' or a '-' in front of it.
  277.  
  278.  A '+' means: must be present.
  279.  A '-' means: must *not* be present.
  280.  
  281.  An example:
  282.  
  283.  +l+p
  284.  
  285.  A message only matches this, if the L)ocal bit, and the P)rivate bits are
  286.  set. The other (possible) attributes are not important.
  287.  
  288.  -f+l
  289.  
  290.  A message matches this, if it is *not* a F)ile request, and the L)ocal bit
  291.  is present.
  292.  
  293.  +c+l+p-s
  294.  
  295.  A message matches this, if the C)rash bit is set, the L)ocal bit is set
  296.  and the P)rivate bit is set. Apart the that, the message must *not* be
  297.  S)ent already..
  298.  
  299.  
  300.  The special nodelist 'attributes'.
  301.  ----------------------------------
  302.  
  303.  NetMgr also supports two special attributes that can check whether a
  304.  certain address is in the nodelist or not.
  305.  
  306.  The following two tokens represent these special attributes:
  307.  
  308.  @ = Check destination address.
  309.  # = Check origination address.
  310.  
  311.  Just like the other attributes, a '+' or a '-' must be used in front of
  312.  these attributes:
  313.  
  314.  +@ means the destination address must be listed.
  315.  -@ means the destination address must NOT be listed.
  316.  
  317.  +# means the origination address must be listed.
  318.  -# means the origination address must NOT be listed.
  319.  
  320.  * Note: if the message originates from, or is destined for a point
  321.    address, NetMgr will try to locate the Boss of this point in the
  322.    nodelist. If the Boss is listed, the point address is also assumed to be
  323.    listed.
  324.  
  325.  Checking whether or not a node is in the nodelist can be quite useful.
  326.  Sending out a message to a node that is unlisted is bound to fail, so it
  327.  may be useful to bounce such a message, or at least give a warning about
  328.  this situation.
  329.  Similarly, if you receive a message FROM a node that is unlisted, you may
  330.  be warned that returning a reply to that address may fail because of this
  331.  situation.
  332.  
  333.  The special nodelist attributes can be simply combined with other
  334.  attributes:
  335.  
  336.  +l+p-@
  337.  
  338.  A message matches these attributes, if the L)ocal bit, and the P)rivate
  339.  bits are set. Additionally, the message must be addressed to a node that
  340.  is not listed in the nodelist.
  341.  
  342.  +p-@-#
  343.  
  344.  A message matches these attributes, if the P)rivate bit is set, the
  345.  message is addressed to a node that is not listed in the nodelist, and the
  346.  message originates from a node that is not listed either.
  347.  
  348.  -@+#
  349.  
  350.  A message matches these attributes, if it originates from a listed node,
  351.  but is addressed to an unlisted node.
  352.  
  353.  
  354.  In order to use these special attributes, you must also specify what type
  355.  of nodelist you use, and where it is located. NetMgr supports the Version
  356.  7 nodelist (used by for example Binkley), the FrontDoor nodelist (used by
  357.  FrontDoor and Intermail) and the GIGO nodelist (a compiler to generate a
  358.  GIGO nodelist is supplied with NetMgr). The keywords that can be used to
  359.  specify the nodelist are presented later in this document.
  360.  
  361.  
  362.  Some examples of a complete 'MASK'.
  363.  ───────────────────────────────────
  364.  
  365.  Mask Gerard van Essen, *, *, *, *, +s
  366.  
  367.  All messages, coming from "Gerard van Essen" on any address (*), written
  368.  TO: anyone (*) on any address (*), with any subject, that are already
  369.  flagged as S)ent.
  370.  
  371.  IE: all messages written by me that have already been packed/sent.
  372.  
  373.  --
  374.  
  375.  Mask *, 2:281/527.*, uucp, 2:281/527.0, *, +l-h-p-k
  376.  
  377.  Message written by anyone (any name: '*'), on node 2:281/527 (.* so it can
  378.  be the NODE 2:281/527 or any of its points, like 2:281/527.40).
  379.  Written TO: a guy named "UUCP" on node 2:281/527.
  380.  The L)ocal bit must be set, and the H)old, P)rivate and K)ill bits must
  381.  *not* be set.
  382.  The subject doesn't matter.
  383.  
  384.  --
  385.  
  386.  Mask *, 2:281/527.*, postmaster, 2:281/527.0, *, *
  387.  
  388.  Message written by anyone (any name: '*'), on node 2:281/527 (.* so it can
  389.  be the NODE 2:281/527 or any of its points, like 2:281/527.40).
  390.  Written TO: a guy named "Postmaster" on node 2:281/527.
  391.  The subject and message attributes that are (not) present are not
  392.  important.
  393.  
  394.  --
  395.  
  396.  Mask *, *, raid, 2:281/527.0, *, *
  397.  
  398.  All messages, coming from anyone on any address, but addressed to RAID on
  399.  2:281/527. The subject & message attributes don't matter.
  400.  
  401.  --
  402.  
  403.  Mask *, *, ~essen, 2:281/527.0, ~timed, *
  404.  
  405.  All messages, addressed to a name that contains the string 'essen', on
  406.  node 2:281/527, that have the string 'timed' somewhere in the subject.
  407.  
  408.  --
  409.  
  410.  Mask ~gerard, !2:281/527.0, *, *, *, *
  411.  
  412.  All messages, coming from someone whose name contains 'gerard', but whose
  413.  address is NOT 2:281/527.
  414.  So it will be from someone with a nice name, but it won't be from me :-)
  415.  
  416.  --
  417.  
  418.  Mask *, *, !~essen, 2:281/527.0, *, *
  419.  
  420.  All messages with node 2:281/527 as their destination, but not addressed
  421.  to anyone who has the string 'essen' in his/her name.
  422.  
  423.  So messages addressed to my system, but not for me personally (most likely
  424.  a message for one of my BBS users).
  425.  
  426.  --
  427.  
  428.  Mask *, !2:281/527.0, *, *, *, -@-l
  429.  
  430.  All messages that are not originating from node 2:281/527, have a
  431.  destination address that is unlisted in the nodelist and do not have the
  432.  'local' bit present.
  433.  
  434.  --
  435.  
  436.  Mask *, *, *, *, *, -#
  437.  
  438.  Any message that originates from an unlisted system.
  439.  
  440.  
  441.  NetMgr also offers another type of Masks: eXtended Masks (XMASKs), with
  442.  much more capabilities than standard masks. These will be explained
  443.  later in this document.
  444.  
  445.  First we will take a look at what NetMgr can actually do when it find a
  446.  message that matches a certain mask.
  447.  
  448.  
  449.  ┌────────────────────────┬─────────────────────────────────────────────
  450.  │ MASK's partner: ACTION │
  451.  └────────────────────────┘
  452.  
  453.  A MASK is never alone, it is always accompanied by one or more ACTION
  454.  statements. This ACTION statement tells NetMgr what should be done with
  455.  messages that match a certain MASK.
  456.  
  457.  In the ACTIONs mentioned below, <destination area> can be any for the
  458.  following formats:
  459.  
  460.  *.MSG    : give the path of the *.MSG area (c:\fd\rcvd\).
  461.  
  462.  Squish   : give the path + basename of this area, and put a '$' in front of
  463.             it, to indicate Squish format ($c:\squish\netmail).
  464.  
  465.  JAM      : give the path + basename of this area, and put a '!' in front of
  466.             it, to indicate JAM format (!c:\fe\msgs\saved).
  467.  
  468.  Hudson   : give the board number of this area, and put a '#' in front of
  469.             it, to indicate Hudson format (#102).
  470.  
  471.  
  472.  The following ACTIONs are valid:
  473.  
  474.  ■ COPY  <destination area>
  475.  ──────────────────────────
  476.  
  477.  Copy a message to another area. This HAS TO BE a netmail area. It can be a
  478.  *.MSG, JAM, Squish or Hudson area (see above). The original message will
  479.  be left alone, NetMgr will simply make a copy.
  480.  
  481.  An example:
  482.  
  483.  Action Copy c:\fd\netmail
  484.  
  485.  This will copy a message to the *.MSG area c:\fd\netmail (there is no
  486.  leading '#', '$' or '!' so it is a *.MSG area.
  487.  
  488.  Action Copy #13
  489.  
  490.  This will copy a message to a Hudson area (because of the leading '#')
  491.  with board number 13.
  492.  
  493.  
  494.  ■ MOVE  <destination area>
  495.  ──────────────────────────
  496.  
  497.  Move a message to another area. This HAS TO BE a netmail area. It can be a
  498.  *.MSG, JAM, Squish or Hudson area (see above). The original message will
  499.  be deleted after a copy is placed in the destination area.
  500.  
  501.  An example:
  502.  
  503.  Action Move !e:\msgbases\artware
  504.  
  505.  This will move a message to the JAM style area (because of the leading
  506.  '!') e:\msgbases\artware.
  507.  
  508.  
  509.  ■ DELETE
  510.  ────────
  511.  
  512.  Delete a message. This action has no parameters. The message will be
  513.  deleted.
  514.  
  515.  
  516.  ■ DELETEATTACH
  517.  ──────────────
  518.  
  519.  This action will not only delete the message, but it will also look at
  520.  any attached files. When the 'Truncate when sent' flag is present on
  521.  the message, the file(s) will be truncated. When the 'Kill file when
  522.  sent' flag is present, the attached file(s) will be deleted.
  523.  
  524.  
  525.  ■ FILE  <output text file>
  526.  ──────────────────────────
  527.  
  528.  Write the message to a text file. NetMgr will write out the message (header
  529.  + body) to a plain (ASCII) text file. The original message will be left
  530.  alone. The body of the message will be formatted with a right margin of
  531.  80.
  532.  If the file does not exist, it will be created. If it exists already, the
  533.  message will be appended at the end of the file.
  534.  
  535.  Example:
  536.  
  537.  Action FILE d:\output\msgtext.txt
  538.  
  539.  This will add the message to the textfile d:\output\msgtext.txt.
  540.  
  541.  
  542.  ■ HDRFILE  <output text file>
  543.  ─────────────────────────────
  544.  
  545.  Write message header to a textfile. NetMgr will write out the message
  546.  (header only) to a plain (ASCII) text file. The original message will be
  547.  left alone.
  548.  
  549.  If the file does not exist, it will be created. If it exists already, the
  550.  message will be appended at the end of the file.
  551.  
  552.  Example:
  553.  
  554.  Action FILE d:\output\msgtext.txt
  555.  
  556.  This will add the header of message to the textfile d:\output\msgtext.txt.
  557.  
  558.  
  559.  ■ SEMAPHORE <path+filename>
  560.  ───────────────────────────
  561.  
  562.  Generate/touch a semaphore. A semaphore is a 0 byte file, that is often
  563.  used as a simple way to communicate between different programs. Different
  564.  courses of action can be taken based on the existence of a semaphore.
  565.  
  566.  This can be easily accomplished in batch files, by using the 'if exist ..'
  567.  and 'if not exist' commands.
  568.  
  569.  If the semaphore file does not exist, it will be created. If it already
  570.  exists, it will be 'touched': the date and time of the file will be set to
  571.  the current date and time.
  572.  
  573.  
  574.  ■ REWRITE  <mask>
  575.  ─────────────────
  576.  
  577.  Rewrite (change) the header.
  578.  
  579.  This action takes a full 'mask' as parameter.  A rewrite mask may contain
  580.  the wildcard token ('*') as well. All fields where a '*' is specified will
  581.  be left unchanged. This allows you to change only a certain field in the
  582.  header without changing any of the other fields.
  583.  Some examples:
  584.  
  585.  Action Rewrite *, *, Gerard van Essen, *, *, *
  586.  
  587.  This will change the TO: name in 'Gerard van Essen', but will not change
  588.  anything else in the header (or body, for that matter) of the message.
  589.  Only the contents of the TO: name field is changed.
  590.  
  591.  Action Rewrite *, *, *, 2:281/527.0, *, *
  592.  
  593.  This will change (only) the destination address of the message. It will be
  594.  set to 2:281/527.0. All other fields will be left unchanged.
  595.  
  596.  Action Rewrite *, *, *, 2:*/*.*, *, *
  597.  
  598.  This will change (only) zone of the destination address of the message. It
  599.  will be set to zone 2. The rest of the address is not changed. So a
  600.  message originally to 1:100/1.0 will be changed to 2:100/1.0, while a
  601.  message originally to 70:256/123.0 will be changed to 2:256/123.0.
  602.  All other fields will be left unchanged.
  603.  
  604.  Action Rewrite *, 2:281/527.0, *, *, Interesting subject, *
  605.  
  606.  This will change the origination address of the message. It will be set to
  607.  2:281/527.0. Additionally, the subject will be set to 'Interesting
  608.  subject'. The other fields will be left unchanged.
  609.  
  610.  Action Rewrite *, *, *, *, Interesting subject, -c+h
  611.  
  612.  This will set the subject to 'Interesting subject'. Additionally, the
  613.  'hold' attribute will be added to the message (+h) and the 'crash'
  614.  attribute will be stripped (-c).
  615.  The other fields will be left unchanged.
  616.  
  617.  You can also use '@myaka' instead of 'address' as the origination
  618.  address. This will let NetMgr pick the most appropriate AKA
  619.  automatically. See the special section about AKAmatching later in the
  620.  documentation.
  621.  
  622.  
  623.  ■ UUCPREWRITE <mask>
  624.  ────────────────────
  625.  
  626.  Rewrite header and add the contents of the 'TO: name' field to the body,
  627.  at the top of the message. This can be useful for Internet <-> FidoNet
  628.  gates.
  629.  UUCPrewrite works exactly like a 'normal' rewrite, but will also add the
  630.  TO: name to the body of the message.
  631.  
  632.  An example:
  633.  
  634.  Action UUCPrewrite *, *, uucp, 2:281/999.999, *, -c+l
  635.  
  636.  A message like this:
  637.  
  638.  From: Pietje Puk, 2:281/0
  639.  To  : art@cnh.wlink.nl, 2:281/527
  640.  Subj: test
  641.  -------------
  642.  Hello!
  643.  .
  644.  .
  645.  
  646.  
  647.  Will be rewritten to:
  648.  
  649.  From: Pietje Puk, 2:281/0
  650.  To  : uucp, 2:281.999.999
  651.  Subj: test
  652.  --------------
  653.  TO: art@cnh.wlink.nl
  654.  
  655.  Hello!
  656.  .
  657.  .
  658.  
  659.  
  660.  ■ BOUNCE  <address> <bounce text file>
  661.  ──────────────────────────────────────
  662.  
  663.  Return message to the sender, and add bounce text at the top.
  664.  
  665.  This action returns a copy of the entire message, including the header
  666.  information.
  667.  
  668.  The address used as origination address (in the origination address,
  669.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  670.  needs to be a full 4D address. You *must* specify this item (it may not be
  671.  '*'), because NetMgr needs to know a valid origination address to use.
  672.  You can also use '@myaka' instead of 'address' as the origination
  673.  address. This will let NetMgr pick the most appropriate AKA
  674.  automatically. See the special section about AKAmatching later in the
  675.  documentation.
  676.  
  677.  The original message is left untouched. If you want to send back the
  678.  message *and* get rid of the original message, you must first have an
  679.  'Action Bounce' and then an 'Action Delete' line for a certain mask.
  680.  Otherwise the original message will just stay there, and might trigger an
  681.  'Action Bounce' on the next run of NetMgr.
  682.  
  683.  If the original message contains the REPLYTO/REPLYADDR kludges (as
  684.  specified in FSC-0035), NetMgr will properly bounce this message back to
  685.  the other network (most likely internet), with a correct TO: line at the
  686.  top of the message.
  687.  
  688.  {+} You can use variables in the textfiles that can be inserted at the
  689.  top of the message.
  690.  
  691.  These variables will be expanded using the contents of the
  692.  message header of the message you are bouncing. This gives you the
  693.  opportunity to make the messages a bit more 'personal'.
  694.  
  695.  In the file, the use of the following variables is now allowed:
  696.  
  697.  %to    :    The full name of the person that the the original message
  698.              was addressed to.
  699.  %fto   :    As %to, but only the first name of that person.
  700.  %from  :    The full name of the person who wrote the original
  701.              message.
  702.  %ffrom :    As %from, but only the first name of that person.
  703.  %subj  :    Subject of the original message.
  704.  %orig  :    Address of the sender of the message (like 2:281/527)
  705.  %dest  :    Address of the recipient of the message (like 2:281/527)
  706.  %time  :    Time the message was written (like 01:25)
  707.  %year  :    The year the message was written (like 1993)
  708.  %mon   :    The month the message was written (like jan, feb etc)
  709.  %day   :    The day of the month msg was written (a number)
  710.  %dow   :    The 'day of week' msg was written (like mon, tue, wed etc)
  711.  
  712.  So, the contents of the bounce file could be:
  713.  
  714.  -=-
  715.  
  716.  Hello %ffrom!
  717.  
  718.  You sent a message to %to (%dest), dated %mon %day, %year. The subject
  719.  was: "%subj".
  720.  
  721.  -=-
  722.  
  723.  These variables can only be used by registered users of NetMgr.
  724.  
  725.  
  726.  ■ EMPTYBOUNCE  <address> <bounce text file>
  727.  ───────────────────────────────────────────
  728.  
  729.  Return message to the sender, add bounce text at the top.
  730.  
  731.  This action returns nothing, apart from the 'bouncetext', there will be no
  732.  information in the message body.
  733.  
  734.  The address used as origination address (in the origination address,
  735.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  736.  needs to be a full 4D address. You *must* specify this item (it may not be
  737.  '*'), because NetMgr needs to know a valid origination address to use.
  738.  
  739.  You can also use '@myaka' instead of 'address' as the origination
  740.  address. This will let NetMgr pick the most appropriate AKA
  741.  automatically. See the special section about AKAmatching later in the
  742.  documentation.
  743.  
  744.  The original message is left untouched. If you want to send back the
  745.  message *and* get rid of the original message, you must first have an
  746.  'Action EmptyBounce' and then an 'Action Delete' line for a certain mask.
  747.  Otherwise the original message will just stay there, and might trigger an
  748.  'Action EmptyBounce' on the next run of NetMgr.
  749.  
  750.  If the original message contains the REPLYTO/REPLYADDR kludges (as
  751.  specified in FSC-0035), NetMgr will properly bounce this message back to
  752.  the other network (most likely internet), with a correct TO: line at the
  753.  top of the message.
  754.  
  755.  {+} You can use variables in the textfiles that can be inserted at the
  756.  top of the message. See the action 'bounce' for more information on
  757.  this.
  758.  
  759.  
  760.  ■ HDRBOUNCE  <address> <bounce text file>
  761.  ─────────────────────────────────────────
  762.  
  763.  Return message to the sender, add bounce text at the top.
  764.  
  765.  This action returns the message header, in addition to the 'bouncetext'.
  766.  The body of the original message will not be sent back, however.
  767.  
  768.  The address used as origination address (in the origination address,
  769.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  770.  needs to be a full 4D address. You *must* specify this item (it may not be
  771.  '*'), because NetMgr needs to know a valid origination address to use.
  772.  
  773.  You can also use '@myaka' instead of 'address' as the origination
  774.  address. This will let NetMgr pick the most appropriate AKA
  775.  automatically. See the special section about AKAmatching later in the
  776.  documentation.
  777.  
  778.  The original message is left untouched. If you want to send back the
  779.  message *and* get rid of the original message, you must first have an
  780.  'Action HdrBounce' and then an 'Action Delete' line for a certain mask.
  781.  Otherwise the original message will just stay there, and might trigger an
  782.  'Action HdrBounce' on the next run of NetMgr.
  783.  
  784.  If the original message contains the REPLYTO/REPLYADDR kludges (as
  785.  specified in FSC-0035), NetMgr will properly bounce this message back to
  786.  the other network (most likely internet), with a correct TO: line at the
  787.  top of the message.
  788.  
  789.  {+} You can use variables in the textfiles that can be inserted at the
  790.  top of the message. See the action 'bounce' for more information on
  791.  this.
  792.  
  793.  
  794.  ■ XBOUNCE {+}
  795.  ■ XHDRBOUNCE {+}
  796.  ■ XEMPTYBOUNCE {+}
  797.  ──────────────────
  798.  
  799.  The BOUNCE, HDRBOUNCE and EMPTYBOUNCE Actions have 'extended'
  800.  counterparts: XBOUNCE, XHDRBOUNCE and XEMPTYBOUNCE.
  801.  
  802.  The format:
  803.  XBOUNCE <textfile for bouncetext> <full mask to use>
  804.  
  805.  The first parameter is the textfile to add at the top of the bounce
  806.  message.
  807.  The second parameter is the mask to use for the bounce message. You can
  808.  specify a "*" for the fields where you want the default to be used.
  809.  
  810.  By default, NetMgr generates a full 'reply header' with the to: and from:
  811.  names and addresses reversed (compared to the original message) and the
  812.  same attributes and subject.
  813.  
  814.  For example, for this message:
  815.  
  816.  From: Gerard, 1:1/1
  817.  To  : SysOp,  1:138/211
  818.  Subj: Test!
  819.  Attr: Pvt Cra
  820.  ----------------------------------
  821.  
  822.  The standard reply header is:
  823.  
  824.  From: SysOp,  1:138/211
  825.  To  : Gerard, 1:1/1
  826.  Subj: Test!
  827.  Attr: Pvt Cra
  828.  ----------------------------------
  829.  
  830.  And that will be the result if you specify a mask like:
  831.  
  832.  Action XBounce c:\txt\bounce.txt *, *, *, *, *, *
  833.  
  834.  However, if you make it:
  835.  
  836.  Action XBounce c:\txt\bounce.txt The Bodyguard, 2:281/527.0, *, *, *, +l
  837.  
  838.  The result would be:
  839.  
  840.  From: The Bodyguard,  2:281/527
  841.  To  : Gerard,         1:1/1
  842.  Subj: Test!
  843.  Attr: Loc
  844.  ----------------------------------
  845.  
  846.  {+} You can use variables in the textfiles that can be inserted at the
  847.  top of the message. See the action 'bounce' for more information on
  848.  this.
  849.  
  850.  The extended bounce actions are only available to registered users.
  851.  
  852.  
  853.  ■ ADDNOTE <textfile>
  854.  ────────────────────
  855.  
  856.  This will add the text from <textfile> at the top of the message. You
  857.  could use this to send a message through with a note ('please do not
  858.  reply through this system, the originating system is unlisted').
  859.  The message is not changed in any other way.
  860.  
  861.  
  862.  ■ FORWARD <mask>
  863.  ────────────────
  864.  
  865.  This action will forward the message (showing both header and body, like
  866.  'bounce' does) to someone else.
  867.  The header of the message will be constructed using the mask you specify.
  868.  However, the header (that is: from, to, subject, destination address,
  869.  origination address and attributes) will be initialized with the
  870.  contents of the original message.
  871.  Putting a '*' in fields of the masks will, as a result, produce the
  872.  contents of the header of the original message.
  873.  
  874.  
  875.  Example:
  876.  
  877.  An example:
  878.  
  879.  Action Forward *, *, Kasper Kwant, 2:500/144.0, *, +l+c
  880.  
  881.  A message like this:
  882.  
  883.  From: Gerard, 2:281/527
  884.  To  : SysOp,  1:138/211
  885.  Subj: Test!
  886.  Attr: -
  887.  ----------------------------------
  888.  
  889.  Will produce a message like this:
  890.  
  891.  
  892.  From: Gerard, 2:281/527
  893.  To  : Kasper Kwant, 2:500/144
  894.  Subj: Test!
  895.  Attr: Loc, Cra
  896.  ----------------------------------
  897.  * Forwarded by NetMgr+ 1.00.g2
  898.  
  899.  Original message:
  900.  From:
  901.  To  :           <--- header of original message.
  902.  Subj:
  903.  ----------------
  904.  Bla, bla        <--- body of original message.
  905.  
  906.  You can also use '@myaka' instead of 'address' as the origination
  907.  address. This will let NetMgr pick the most appropriate AKA
  908.  automatically. See the special section about AKAmatching later in the
  909.  documentation.
  910.  
  911.  
  912.  ■ MAKEMSG <file for body> <mask>
  913.  ────────────────────────────────
  914.  
  915.  This will generate a new message, using the Mask you specify as the
  916.  header, and the contents of a file you specify as the body.
  917.  However, the header (that is: from, to, subject, destination address,
  918.  origination address and attributes) will be initialized with the
  919.  contents of the original message.
  920.  Putting a '*' in fields of the masks will, as a result, produce the
  921.  contents of the header of the original message.
  922.  
  923.  
  924.  Example:
  925.  
  926.  Action MakeMsg c:\body.txt Art, 2:281/527.0, SysOp, 1:138/211.0, Poll!, +l
  927.  
  928.  This will generate a message to SysOp on 1:138/211, with body.txt as the
  929.  body of the message.
  930.  
  931.  You can also use '@myaka' instead of 'address' as the origination
  932.  address. This will let NetMgr pick the most appropriate AKA
  933.  automatically. See the special section about AKAmatching later in the
  934.  documentation.
  935.  
  936.  
  937.  ■ BOUNCEIN
  938.  ■ HDRBOUNCEIN
  939.  ■ EMPTYBOUNCEIN
  940.  ■ XBOUNCEIN {+}
  941.  ■ XHDRBOUNCEIN {+}
  942.  ■ XEMPTYBOUNCEIN {+}
  943.  ■ FORWARDIN
  944.  ■ MAKEMSGIN
  945.  ────────────────────
  946.  
  947.  Several actions have a similar counterpart, that can place the resulting
  948.  message in another area.
  949.  The actions concerned are: the Bounce and XBounce 'family', Forward and
  950.  MakeMsg. In order to place the resulting message in another area, add
  951.  'IN' to the action name (to make BOUNCEIN, XBOUNCEIN, XEMPTYBOUNCEIN,
  952.  FORWARDIN etc), and add the path/name of the area to put the message in.
  953.  
  954.  Some examples:
  955.  
  956.  Action XBOUNCEIN $d:\msg\net bounce.txt The Bouncer, @myaka, *, *, *, +l
  957.  
  958.  This will create a bounce message in the Squish area d:\msg\net.
  959.  
  960.  Action FORWARDIN !c:\msgbase\netmail *, *, Pietje Puk, 2:2/2.0, *, +l
  961.  
  962.  This will forward a message to 'Pietje Puk (2:2/0)' in the JAM style area
  963.  c:\msgbase\netmail.
  964.  
  965.  
  966.  ■ CHANGEPATH <new path>
  967.  ───────────────────────
  968.  
  969.  This action replaces the path of files found in the subject line. It makes
  970.  sense to only use this for file attach messages, as you will get a
  971.  terribly messed up subject line otherwise :-)
  972.  
  973.  Example:
  974.  
  975.  Action ChangePath c:\frodo\infiles
  976.  
  977.  In the above example, the subject line:
  978.  
  979.  Subj: c:\tmp\myfile.txt d:\outfiles\test.txt
  980.  
  981.  will be rewritten to:
  982.  
  983.  Subj: c:\frodo\infiles\myfile.txt c:\frodo\infiles\test.txt
  984.  
  985.  If a file does not have a path at all, the defined path will be added:
  986.  
  987.  Subj: test.txt
  988.  
  989.  will get:
  990.  
  991.  Subj: c:\frodo\infiles\test.txt
  992.  
  993.  If the defined change will lead to a subject line that is too long (the
  994.  new path is longer than the old one, and the subject would get longer than
  995.  71 chars) the message will not be changed.
  996.  Note that the actual file is left untouched. NetMgr only works on the
  997.  subject line of the message. No actual files are moved.
  998.  
  999.  
  1000.  ■ CHANGEPATHMOVE <new path>
  1001.  ───────────────────────────
  1002.  
  1003.  This works exactly like 'ChangePath', but it also moves the attached
  1004.  file(s) to the new directory.
  1005.  
  1006.  
  1007.  ■ ECHOCOPY <address> <area> <seenby>
  1008.  ────────────────────────────────────
  1009.  
  1010.  Copy a netmail message to an echomail area. Add an origin and (optionally)
  1011.  a SEEN-BY: line.
  1012.  
  1013.  The address used as origination address (in the origin, MSGID) is the
  1014.  first item( <address>). As all addresses in Netmgr.cfg, this needs to be a
  1015.  full 4D address. You *must* specify an address here, because NetMgr needs
  1016.  this information to generate a correct Origin line. Specifying a '*' is
  1017.  not allowed.
  1018.  
  1019.  Leave SEEN-BY: info out if you don't want it. The text put here is just
  1020.  duplicated in the SEEN-BY line, so you can put more than one address here.
  1021.  Take care what you specify: the text is simply copied verbatim. If you
  1022.  specify an illegal address or format, NetMgr will simply copy it, making
  1023.  the message invalid.
  1024.  
  1025.  If the original message already contained a tear- or origin line, NetMgr
  1026.  will strip it and replace it with a newly generated, correct tear/origin
  1027.  line. This makes sure the correct address is used in the origin line and
  1028.  that the message is a valid echomail message (with an origin line).
  1029.  
  1030.  NetMgr also adds or replaces the MSGID with a newly generated, correct
  1031.  (ie: using the correct address) MSGID.
  1032.  
  1033.  The result of all this should be a valid, fresh echomail message, that has
  1034.  the same header and body as the original message. The original message
  1035.  will be left untouched.
  1036.  
  1037.  An example:
  1038.  
  1039.  Action EchoCopy 2:281/527.0 $c:\msgs\maillist
  1040.  
  1041.  This will take a message and generate an echomail message out of it, using
  1042.  2:281/527 as Origin address. The echomail message will be generated in the
  1043.  Squish area (because of the leading '$' that denotes a Squish style area)
  1044.  c:\msgs\maillist. No SEEN-BY will be added.
  1045.  
  1046.  Action EchoCopy 2:281/527.0 !c:\msgs\maillist 281/528
  1047.  
  1048.  This will take a message and generate an echomail message out of it, using
  1049.  2:281/527 as Origin address. The echomail message will be generated in the
  1050.  JAM area (because of the leading '!' that denotes a JAM style area)
  1051.  c:\msgs\maillist. The string '281/528' will be added to the SEEN-BY.
  1052.  
  1053.  Action EchoCopy 2:281/527.0 !c:\msgs\maillist 281/528 529
  1054.  
  1055.  This will take a message and generate an echomail message out of it, using
  1056.  2:281/527 as Origin address. The echomail message will be generated in the
  1057.  JAM area (because of the leading '!' that denotes a JAM style area)
  1058.  c:\msgs\maillist. The string '281/528 529' will be added to the SEEN-BY.
  1059.  
  1060.  Action EchoCopy 2:281/527.0 #13 pietje puk
  1061.  
  1062.  This will take a message and generate an echomail message out of it, using
  1063.  2:281/527 as Origin address. The echomail message will be generated in the
  1064.  Hudson board (because of the leading '#' that denotes a Hudson style area)
  1065.  number 13. The string 'pietje puk' will be added to the SEEN-BY. This will
  1066.  generate an invalid message and you will definitely be in trouble because
  1067.  of this!
  1068.  
  1069.  
  1070.  ■ ECHOMOVE <address> <area> <seenby>
  1071.  ────────────────────────────────────
  1072.  
  1073.  Move a netmail message to an echomail area and add an origin and
  1074.  optionally a SEEN-BY.
  1075.  
  1076.  The address used as origination address (in the origin, MSGID) is the
  1077.  first item( <address>). As all addresses in Netmgr.cfg, this needs to be a
  1078.  full 4D address. You *must* specify an address here, because NetMgr needs
  1079.  this information to generate a correct Origin line. Specifying a '*' is
  1080.  not allowed.
  1081.  
  1082.  Leave SEEN-BY: info out if you don't want it. The text put here is just
  1083.  duplicated in the SEEN-BY line, so you can put more than one address here.
  1084.  Take care what you specify: the text is simply copied verbatim. If you
  1085.  specify an illegal address or format, NetMgr will simply copy it, making
  1086.  the message invalid.
  1087.  
  1088.  If the original message already contained a tear- or origin line, NetMgr
  1089.  will strip it and replace it with a newly generated, correct tear/origin
  1090.  line. This makes sure the correct address is used in the origin line and
  1091.  that the message is a valid echomail message (with an origin line).
  1092.  
  1093.  NetMgr also adds or replaces the MSGID with a newly generated, correct
  1094.  (ie: using the correct address) MSGID.
  1095.  
  1096.  The result of all this should be a valid, fresh echomail message, that has
  1097.  the same header and body as the original message. The original message in
  1098.  the netmail area will be deleted.
  1099.  
  1100.  
  1101.  ■ IGNORE
  1102.  ────────
  1103.  
  1104.  This action does absolutely nothing, but is it a 'match', so scanning for
  1105.  a matching mask will stop after this.
  1106.  
  1107.  For example:
  1108.  
  1109.  Mask *, 2:281/527.0, *, *, *, *
  1110.  Mask *, 2:281/528.0, *, *, *, *
  1111.  Mask *, 2:281/529.0, *, *, *, *
  1112.  Action Ignore
  1113.  
  1114.  Mask *, *, *, *, *, *
  1115.  Action Delete
  1116.  
  1117.  This will make sure the 'delete' action is never reached for messages
  1118.  originating from 281/527, 281/528 or 281/529.
  1119.  
  1120.  
  1121.  ■ PACKMAIL <origination address> <destination address> [<password>]
  1122.  ───────────────────────────────────────────────────────────────────
  1123.  
  1124.  This action keyword activates NetMgr netmail packing capabilities. NetMgr
  1125.  will take the message and place it in a mailpacket in a Binkley style
  1126.  outbound area (these mailpackets are always called '*.?UT).
  1127.  
  1128.  The mailpacket header will contain the addresses you specify here. So the
  1129.  mailpacket will be from <origination address> to <destination address>.
  1130.  Please note that this is only in the PACKET HEADER, not the individual
  1131.  messages that are inside the packet. Those individual message (obviously)
  1132.  have the origination and destination addresses that were present in the
  1133.  message itself when it was found in your netmail area.
  1134.  
  1135.  The origination address *must* always be a fully specified 4D address,
  1136.  using '*' is not allowed (NetMgr needs an address to use as origination
  1137.  address).
  1138.  
  1139.  In the destination address, however, you are allowed to use '*'. The
  1140.  destination address of the mailpacket will then be the same as the
  1141.  destination address of the individual message that is being packed. Making
  1142.  clever use of '*' for (parts of) the address will allow you to do routing
  1143.  of messages.
  1144.  
  1145.  The third parameter is optional and, when used, specifies the packet
  1146.  password to use when creating the mailpacket.
  1147.  
  1148.  Currently, NetMgr will properly:
  1149.  
  1150.  - Request files (make a *.REQ file in the outbound).
  1151.  - Attach files (make an *.?LO file). FLAGS KFS (Kill file after it is
  1152.    sent) & TFS (truncate file after it is sent) are supported.
  1153.  - Pack (bundle and put in outbound, not compress) messages (make and/or
  1154.    add to *.?UT files in outbound).
  1155.  - Strip paths from subject lines of 'file attach' messages.
  1156.  - Handle update requests.
  1157.  - Handle (update) requests with passwords.
  1158.  - Generate and check for busy (*.BSY) flags in the outbound.
  1159.  
  1160.  The packing is dumb. NetMgr will happily pack messages to yourself, for
  1161.  example. Or route files to an overseas system, even if they are not coming
  1162.  from your system. Or route file requests.
  1163.  Like all other commands, NetMgr simply scans headers and does what it's
  1164.  told, the logic of it's actions has to come from YOU.
  1165.  
  1166.  The only 'intelligence' of the packmail function:
  1167.  
  1168.  ■ It will not pack messages that are 'sent' or 'locked'.
  1169.  ■ It will automatically set the 'sent' bit after sending.
  1170.  ■ If the message is 'kill/sent', it will delete the message after it is
  1171.    successfully added to the mailpacket in the outbound area.
  1172.  
  1173.  
  1174.  Here are the four main forms will most likely be used for the PackMail
  1175.  action:
  1176.  
  1177.  PackMail <address> *           : Send/Route messages to the destination
  1178.                                   address found in message header (even if
  1179.                                   it's a point!). This would be applicable
  1180.                                   for 'hold' mail to/for points.
  1181.  
  1182.  PackMail <address> <address b> : Send/Route messages to address b. All
  1183.                                   messages, regardless of their destination
  1184.                                   address, will be routed to <address b>.
  1185.                                   This would be applicable for normal
  1186.                                   flavour mails, that can be routed to a
  1187.                                   Boss or HUB node.
  1188.  
  1189.  PackMail <address> *:*/*.0     : Send/Route messages to the second
  1190.                                   address, with the pointnumber always set
  1191.                                   to 0 (in other words: do Bossrouting for
  1192.                                   this entry). This would be applicable for
  1193.                                   'crash' mail for points. Most points do
  1194.                                   not run a continuous mail system (usually
  1195.                                   you don't even know a phonenumber), so a
  1196.                                   crashmail for a point would usually have
  1197.                                   to be delivered at the point's Bossnode.
  1198.  
  1199.  PackMail <address> *:*/0.0     : Send/Route messages to node 0 in the net
  1200.                                   of the destination address found in the
  1201.                                   header (HostRouting).
  1202.  
  1203.  You can also use '@myaka' instead of 'address' as the origination
  1204.  address. This will let NetMgr pick the most appropriate AKA
  1205.  automatically. See the special section about AKAmatching later in the
  1206.  documentation.
  1207.  
  1208.  
  1209.  ■ MOVEMAIL <orig> <dest> <dir> [<password>]
  1210.  ───────────────────────────────────────────
  1211.  
  1212.  <orig>     : origination address to use (in mailpacket header).
  1213.  <dest>     : destination address to use (in mailpacket header).
  1214.  <dir>      : output directory for packet.
  1215.  <password> : packet password to use for the mailpacket (optional).
  1216.  
  1217.  This will create a mailpacket, not in Binkley's outbound but in the <dir>
  1218.  you specify. The packetname will be a unique name created by NetMgr (it
  1219.  is an uncompressed packet, so the extension will be .PKT). The packet
  1220.  will be from <orig> and addressed to <dest>.
  1221.  You can also use '@myaka' instead of 'address' as the origination
  1222.  address. This will let NetMgr pick the most appropriate AKA
  1223.  automatically. See the special section about AKAmatching later in the
  1224.  documentation.
  1225.  
  1226.  Using '*' for <dest> is not allowed here (I don't think it is useful - it
  1227.  can be added though).
  1228.  
  1229.  If a file is attached to the message, it will be copied to <dir> as well.
  1230.  The FLAGS KFS & TFS are respected; after the file is copied it will be
  1231.  deleted or truncated if one of these flags is set.
  1232.  The 'sent' bit is set after the message is added to the mailpacket, or
  1233.  the message is killed (when a message was marked kill/sent).
  1234.  Messages that are either Sent or Locked will not be processed.
  1235.  
  1236.  Possible uses: mail delivery through a LAN, maybe also sending mail to
  1237.  gateways on your system.
  1238.  
  1239.  
  1240.  ■ RUNEXTERNAL <program to use> <parameters>
  1241.  ───────────────────────────────────────────
  1242.  
  1243.  This action allows you to run an external program from NetMgr. Before
  1244.  running the external program, NetMgr will swap most of itself out of
  1245.  memory (DOS version), leaving plenty of room for other programs to run.
  1246.  
  1247.  In the <parameters> part, you can make use of several 'variables', whose
  1248.  value depends on the contents of the header of the message that triggered
  1249.  the action. The following variables are available:
  1250.  
  1251.  from       - Name in the 'from' field of current message.
  1252.  to         - Name in the 'to' field of current message.
  1253.  subject    - Name in the 'subject' field of current message.
  1254.  orig       - Origination address of current message (like 2:281/527).
  1255.  dest       - Destination address of current message (like 2:281/527).
  1256.  areadir    - Directory or base name of current area, board number if
  1257.               Hudson. This is in the format that is also used in
  1258.               NetMgr.cfg, so $<path+basename> for a Squish area,
  1259.               !<path+basename> for a JAM area etc.
  1260.  msgno      - Message number of current message ('relative' number for
  1261.               Squish and Hudson)
  1262.  realmsgno  - Real message number, for Squish (UMSGID) and Hudson (real
  1263.               number in Hudson base, not the relative number in the area).
  1264.               For JAM and *.MSG, this is always equal to msgno.
  1265.  file       - Name of the file that contains the body of the message.
  1266.  newfile    - Name of a new file to create if you want to replace the body
  1267.               of the message with new text.
  1268.  repfile    - Name of the file that should be created if you want to send
  1269.               a message back to the sender of the message. (See below).
  1270.  attach     - Files attached to this message (list of files).
  1271.  request    - Files requested in this message (list of files [!passwords]).
  1272.  
  1273.  Before running the external program, NetMgr will write the body of the
  1274.  message to a file. This file (and other files) will be created in the
  1275.  directory where NetMgr found it's config file. The path+name of this file
  1276.  is available through the variable [file]. It will be:
  1277.  "<path to config file>\netmsg.msg".
  1278.  
  1279.  NetMgr will then run the external program, and afterwards check for the
  1280.  existence of two files:
  1281.  
  1282.  ■  "<path to config file>\netmsg.new" : if this file exists, NetMgr will
  1283.     replace the body of the message with the contents of this file. The
  1284.     path+name of this variable is available through the variable
  1285.     [newfile].
  1286.  
  1287.  ■  "<path to config file>\netmsg.rep": if this file exists, NetMgr will
  1288.     send a message back to the sender of the message that triggered this
  1289.     action.
  1290.     What is actually done, is an XEMPTYBOUNCE action. For this action, the
  1291.     netmsg.rep file is used as the body (where the variables like [from],
  1292.     [to] etc. can be used), but where the first line of this .rep file is
  1293.     used as the 'mask' for the reply header.
  1294.     Because it actually _is_ an XEMPTYBOUNCE, it also follows the same
  1295.     conventions as the XEMPTYBOUNCE action, so it initializes the fields
  1296.     with a standard reply header, which makes it possible to use a simple
  1297.     '*, *, *, *, *, *' mask (see XEMPTYBOUNCE action for more info).
  1298.     The path+name of this variable is available through the variable
  1299.     [repfile].
  1300.  
  1301.  An example:
  1302.  
  1303.  Action RUNEXTERNAL pgp.exe +batchmode -sta -u art -o [newfile]
  1304.                                                               -z pass [file]
  1305.  
  1306.  could expand to:
  1307.  
  1308.  'pgp.exe +batchmode -sta -u art -o c:\net\netmsg.new -z pass
  1309.                                                            c:\netmgr\net.msg'
  1310.  
  1311.  This would run PGP on the message, and sign the text. The body of the
  1312.  message will be replaced with a signed version of the text.
  1313.  
  1314.  An example of usage of a .rep file could be:
  1315.  
  1316.  Action RUNEXTERNAL reply.cmd [repfile]
  1317.  
  1318.  And the contents of 'reply.cmd' could be:
  1319.  
  1320.  @echo off
  1321.  echo Automatic Reply, @myaka, *, *, Response to your message, * >> %1
  1322.  echo Hello %%ffrom! >> %1
  1323.  echo. >> %1
  1324.  echo This is an automatic reply! >> %1
  1325.  echo. >> %1
  1326.  echo Greetings! >> %1
  1327.  
  1328.  For DOS users, 'reply.cmd' should of course be 'reply.bat'.
  1329.  This would create a netmsg.rep file, and NetMgr would send back a small
  1330.  message to the sender of the original message.
  1331.  
  1332.  
  1333.  ■ Display <line to display>
  1334.  ───────────────────────────
  1335.  
  1336.  This one will display a line of text on the screen and in the logfile.
  1337.  You can use this to add details about certain actions to the logfile.
  1338.  Example:
  1339.  
  1340.  Mask *, *, Pietje Puk, *, *, *
  1341.  Action Display Deleted message to Pietje Puk!
  1342.  Action Delete
  1343.  
  1344.  Whenever this action is executed, the line 'Deleted message to Pietje
  1345.  Puk!' will be shown on the screen and added to the logfile. Leading and
  1346.  trailing spaces are not touched, the line is displayed exactly as found
  1347.  in the config (The first space, between 'Display' and 'Deleted' in this
  1348.  case, *does* of course get stripped..).
  1349.  
  1350.  Please note that some actions prevent NetMgr from looking for more
  1351.  actions to perform. Delete is one of them: after a message is deleted,
  1352.  there is nothing that can be done with that message anymore and NetMgr
  1353.  stops scanning for more actions. (Echo-)move is another example.
  1354.  
  1355.  Of course, 'Display' is something that *can* be done even after a message
  1356.  is deleted, it is an exception to this. But NetMgr is not that smart, so
  1357.  keep it in mind and do the 'display' first.
  1358.  
  1359.  So this:
  1360.  
  1361.  Mask *, *, Pietje Puk, *, *, *
  1362.  Action Delete
  1363.  Action Display Deleted message to Pietje Puk!
  1364.  
  1365.  Doesn't work, because NetMgr will never get to the 'Display' action.
  1366.  
  1367.  
  1368.  Some other examples of Action statements.
  1369.  =========================================
  1370.  
  1371.  --
  1372.  
  1373.  Action Delete
  1374.  
  1375.  Delete the message
  1376.  
  1377.  --
  1378.  
  1379.  Action Move $c:\bink\msgs\net2
  1380.  
  1381.  Move a message to the Squish style (leading $) area c:\bink\msgs\net2.
  1382.  
  1383.  --
  1384.  
  1385.  Action Move c:\msgs\rec_msg
  1386.  
  1387.  Move a message to the *.MSG style (no leading $, ! or #) area
  1388.  c:\msgs\rec_msg\.
  1389.  
  1390.  --
  1391.  
  1392.  Action Copy !c:\jammsgs\saved
  1393.  
  1394.  Copy a message to the JAM style (leading '!') area c:\jammsgs\saved.
  1395.  
  1396.  --
  1397.  
  1398.  Action Rewrite *, *:*/*.0, *, *, *, *
  1399.  
  1400.  Change a message header.
  1401.  Any field that has a '*' will be left untouched (in this case the
  1402.  Fromname, the fromaddress zone, net and node parts), the toname, the
  1403.  toaddress and the attributes.
  1404.  
  1405.  So, to be more precise: only the point number of the message sender will
  1406.  be changed. Messages coming from 2:281/527.40, for example, will be
  1407.  changed to a message coming from 2:281/527.0.
  1408.  
  1409.  --
  1410.  
  1411.  Action ReWrite *, *, Pietje Puk, *, *, *
  1412.  
  1413.  This will rewrite the 'toname' part of a message, it will put "Pietje Puk"
  1414.  in the TO: name-field.
  1415.  
  1416.  --
  1417.  
  1418.  You can also tell NetMgr to change the attributes of a message. Again, any
  1419.  attributes must be preceded by a '+' or '-'.
  1420.  
  1421.  A '+' in this case means: set this bit.
  1422.  A '-' in this case means: turn this bit off.
  1423.  
  1424.  so..
  1425.  
  1426.  +p+l+k-c-f
  1427.  
  1428.  .. will turn ON the P)rivate, L)ocal and K)ill bits, and turn OFF the
  1429.  C)rash and F)ile request bits. Other attributes are left untouched.
  1430.  
  1431.  Examples:
  1432.  
  1433.  Action Rewrite *, *, *, *, *, -c+p
  1434.  
  1435.  Turn off the crash bit for that message. Turn ON the P)rivate bit.
  1436.  
  1437.  Action Rewrite *, *, *, *, *, -c-a-f-d-m-t-e-z+h+p+k
  1438.  
  1439.  Turn off the crash, attach, request, direct, immediate, Truncate file
  1440.  sent, Kill file sent and Archive file sent bits for that message. Turn ON
  1441.  the P)rivate bit, K)ill bit and H)old bit. This could be used to strip all
  1442.  'dangerous' bits off a message an make sure it is a private message that
  1443.  will be put on hold for pickup. It might be useful to perform an action
  1444.  like this on all message that you are routing for someone else, for
  1445.  example.
  1446.  
  1447.  --
  1448.  
  1449.  Action Bounce 2:281/527.0 nojoe.txt
  1450.  
  1451.  This will write a bounce-message (a message that is addressed to the
  1452.  sender of that message), the message body will contain the header and body
  1453.  of the original message. The address 2:281/527.0 is used as origination
  1454.  address for this message.
  1455.  
  1456.  Also, NetMgr will add the contents of a textfile at the top of the
  1457.  body. In this case the contents of the file 'nojoe.txt' will be added.
  1458.  The contents could be:
  1459.  
  1460.  -=- <begin> -=-
  1461.  
  1462.  Sorry, but Joe's modem had a heart attack, so he is currently not
  1463.  available. The message you wrote will remain 'on hold' until he has a new
  1464.  modem.
  1465.  
  1466.  The original text of your message:
  1467.  
  1468.  ::::
  1469.  
  1470.  -=- <end> -=-
  1471.  
  1472.  And that will be added at the top.
  1473.  
  1474.  The original message will NOT be deleted. If that is what you want, you
  1475.  must add the another ACTION for that MASK, to DELETE the message.
  1476.  NetMgr accepts more than one 'ACTION' for a certain mask.
  1477.  
  1478.  You can also, for example, first rewrite a message, and then move it, etc.
  1479.  
  1480.  --
  1481.  
  1482.  Action EchoCopy 2:281/527.0 #57 281/527 528
  1483.  
  1484.  This will copy a message to the Hudson style area, board number 57, and
  1485.  add 281/527 528 to the SEEN-BY. The text listed will be copied literally,
  1486.  so be VERY CAREFUL what you specify here! Test it thoroughly (together
  1487.  with any downlinks) before using it!!
  1488.  The newly created echomail message will show 2:281/527 as its origination
  1489.  address in the origin.
  1490.  
  1491.  --
  1492.  
  1493.  Action File c:\msgs\netmsgs.txt
  1494.  
  1495.  This will write out a message to the file c:\msgs\netmsgs.txt. If the file
  1496.  doesn't exist, it will be created. If it does exist, the message will be
  1497.  appended to the file.
  1498.  
  1499.  --
  1500.  
  1501.  Action UUCPrewrite *, *, postmaster, 2:281/527.0, *, +p+k+l
  1502.  
  1503.  This will take the name from the TO: field, and add it at the top of the
  1504.  message body (TO: <toname>). The message itself will be readdressed to
  1505.  postmaster at 2:281/527, and have the attributes p)rivate, k)ill and
  1506.  l)ocal added.
  1507.  This can be useful for people who gate messages to internet.
  1508.  
  1509.  --
  1510.  
  1511.  Action Semaphore c:\frodo\sems\areafix.sem
  1512.  
  1513.  This will create (or touch) a semaphore called areafix.sem. You may use
  1514.  this to create semaphores that will start Areafix only when a message to
  1515.  areafix was actually encountered by NetMgr (as opposed to running areafix
  1516.  after every mailtoss).
  1517.  
  1518.  
  1519.  ┌───────────────────────────────┬───────────────────────────────────────
  1520.  │ MASK and ACTION in NetMgr.cfg │
  1521.  └───────────────────────────────┘
  1522.  
  1523.  A MASK must *always* have one or more corresponding ACTION(s) in
  1524.  netmgr.cfg. NetMgr will NOT run if anything is wrong in the config.
  1525.  Whenever you make any changes to the configuration file, please give it a
  1526.  test run to see if any syntax errors pop up.
  1527.  
  1528.  There are always 'pairs':
  1529.  
  1530.  Mask *, *, Harry Twit, *, *, *
  1531.  Action Delete
  1532.  
  1533.  Any message that matches the MASK will be deleted.
  1534.  
  1535.  --
  1536.  
  1537.  Mask *, *, *, 60:*/*.*, *, *
  1538.  Action Move !c:\bink\msgs\net2
  1539.  
  1540.  Any message addressed to a zone 60 address will be moved to the specified
  1541.  JAM area.
  1542.  
  1543.  --
  1544.  
  1545.  Mask *, *, *, *, *, +r
  1546.  Mask Move $c:\msgs\received
  1547.  
  1548.  All received messages will be moved to the specified Squish area.
  1549.  
  1550.  --
  1551.  
  1552.  Mask *, 2:281/527.0, *, *, *, +f
  1553.  Action Packmail 2:281/527.0 *
  1554.  
  1555.  This takes all file request messages, generated by 2:281/527, and
  1556.  properly generates a request out of it. The request will be addressed to
  1557.  the system that is also found in the 'destination address' field of the
  1558.  message (that makes sense) :-)
  1559.  
  1560.  
  1561.  Mask *, 2:281/527.0, *, 1:*/*.*, *, +l
  1562.  Action Packmail 2:281/527.0 1:138/211.0
  1563.  
  1564.  This will take all messages from 281/527, addressed to any zone 1 system,
  1565.  and pack them in a mailpacket addressed to 1:138/211.
  1566.  
  1567.  
  1568.  Mask *, 2:281/527.99, *, *, *, +l-c-h-d-a-f-u
  1569.  Action Packmail 2:281/527.99 2:281/527.0
  1570.  
  1571.  This will take all messages that originate from 2:281/527.99, that have
  1572.  the local bit set, and that are NOT crash, hold, direct, file attach, file
  1573.  request or update request. In other words: all 'normal' messages. These
  1574.  message are packed in a packet addressed to 2:281/527.0.
  1575.  
  1576.  In effect, all 'normal' messages would be routed to 2:281/527.0. And
  1577.  considering that 2:281/527.99 is a point off of 2:281/527, that makes sense:
  1578.  all normal messages are routed through the Boss node. File requests, crash
  1579.  messages and such are not: they need to be sent directly to the
  1580.  destination. That could be done with the following Mask/Action lines:
  1581.  
  1582.  Mask *, 2:281/527.99, *, *, *, +l
  1583.  Action Packmail 2:281/527.99 *:*/*.0
  1584.  
  1585.  If the above line would be placed in NetMgr.cfg *below* the Mask we just
  1586.  saw, we would only get to this mask if the message is indeed crash or file
  1587.  request and the like: otherwise they would already have been packed with
  1588.  the previous Mask/Action.
  1589.  
  1590.  This mask takes all message originating from 2:281/527.99 with the local
  1591.  flag set, and routes them to the Bossnode of the system found in the
  1592.  destination address of the message.
  1593.  For file requests, crash messages and comparable types of messages, this
  1594.  is usually the correct action: requests have to be dropped at the system
  1595.  directly in order to get the files. Crash messages are usually not routed
  1596.  (because you want to deliver them ASAP).
  1597.  And because points usually don't have a system online at all times, the
  1598.  messages are routed to the Bossnode (that often is online at all times)
  1599.  of that point.
  1600.  
  1601.  
  1602.  
  1603.  It is also possible to specify SEVERAL actions for one mask:
  1604.  
  1605.  Mask *, *, Pietje Puk, 2:281/527.0, *, *
  1606.  Action Bounce 2:281/527.0, c:\txt\newaddr.txt
  1607.  Action File c:\msgs\pietje.txt
  1608.  Action Forward Art, 2:281/527.0, Pietje Puk, 2:300/1.0, Readdressed mail, +l
  1609.  Action Delete
  1610.  
  1611.  Take a while to check this out. What it does is this:
  1612.  
  1613.  Whenever a mail addressed to 'Pietje Puk' on 2:281/527 is encountered,
  1614.  this message will be bounced back to the sender. The contents of the file
  1615.  'c:\txt\newaddr.txt' will be added at the top of the message (possibly
  1616.  explaining that Pietje now has a new email address).
  1617.  
  1618.  Then, the contents of the message will be written to a file (pietje.txt).
  1619.  
  1620.  The message will also be forwarded to 'Pietje Puk' on '2:300/1', which is
  1621.  Pietje's new netmail address (so he gets his message anyway).
  1622.  
  1623.  And finally, the original message is deleted.
  1624.  
  1625.  
  1626.  You can also use more than one Mask, and combine it with one or more
  1627.  actions!
  1628.  
  1629.  For example:
  1630.  
  1631.  Mask Gerard van Essen, 2:281/527.0, *, *, *, +s
  1632.  Mask *, *, Gerard van Essen, 2:281/527.0, *, +r
  1633.  Action Move $c:\fastecho\rcvdsent
  1634.  
  1635.  This will take all messages FROM Gerard van Essen (2:281/527) that are
  1636.  'sent', and also all message TO Gerard van Essen (2:281/527) that are
  1637.  received and moves these to a Squish message area (rcvdsent). In other
  1638.  words: all received and sent netmail is moved out of my primary netmail
  1639.  area.
  1640.  
  1641.  This means, that either the first Mask has to match, OR the second mask
  1642.  has to match. If either of them matches, he action will be performed. This
  1643.  is known to confuse users, if you also use 'NOT' in a certain mask. Some
  1644.  examples will hopefully clear this up a bit:
  1645.  
  1646.  Mask Gerard van Essen, *, *, *, *, *
  1647.  Action Delete
  1648.  
  1649.  This will delete a message if it is written by Gerard van Essen.
  1650.  
  1651.  Mask !Gerard van Essen, *, *, *, *, *
  1652.  Action Delete
  1653.  
  1654.  This will delete a message if it is NOT written by Gerard van Essen.
  1655.  
  1656.  Mask Gerard van Essen, *, *, *, *, *
  1657.  Mask Pietje Puk, *, *, *, *, *
  1658.  Action Delete
  1659.  
  1660.  This will delete a message if it is written by Gerard van Essen, OR if it
  1661.  is written by Pietje Puk. If any of the two masks match, the action will
  1662.  be performed.
  1663.  
  1664.  Mask !Gerard van Essen, *, *, *, *, *
  1665.  Mask Pietje Puk, *, *, *, *, *
  1666.  Action Delete
  1667.  
  1668.  This will delete a message is it is NOT written by Gerard van Essen, OR if
  1669.  it is written by Pietje Puk. If any of the two masks match, the action
  1670.  will be performed.
  1671.  
  1672.  In this case, a message written by 'Gerard van Essen' does not match the
  1673.  first mask (that one matches only messages that are NOT written by Gerard
  1674.  van Essen), nor does it match the second mask (that one only matches
  1675.  messages written by Pietje Puk). The 'Action Delete' will not be
  1676.  performed.
  1677.  
  1678.  A message written by 'Jos Verstappen' does match the first Mask (Jos
  1679.  Verstappen is 'NOT Gerard van Essen' so that is a match with the first
  1680.  mask. The 'Action Delete' is performed.
  1681.  
  1682.  Mask !Gerard van Essen, *, *, *, *, *
  1683.  Mask !Pietje Puk, *, *, *, *, *
  1684.  Action Delete
  1685.  
  1686.  This will delete a message if it is NOT written by Gerard van Essen, OR if
  1687.  it is NOT written by Pietje Puk. If any of the two masks match, the action
  1688.  will be performed.
  1689.  
  1690.  In this case, a message written by 'Gerard van Essen' does not match the
  1691.  first mask (that one matches only messages that are NOT written by Gerard
  1692.  van Essen), but it does it match the second mask (that one matches
  1693.  messages NOT written by Pietje Puk). And since 'Gerard van Essen' is 'NOT
  1694.  Pietje Puk', it matches the second Mask.
  1695.  The 'Action Delete' will be performed.
  1696.  
  1697.  A message written by 'Jos Verstappen' does match the first Mask (Jos
  1698.  Verstappen is 'NOT Gerard van Essen' so that is a match. The 'Action
  1699.  Delete' is performed.
  1700.  
  1701.  As you can see, ANY message matches one of the above masks!
  1702.  If a message is written by "gerard van essen", it will match the second
  1703.  mask.
  1704.  If a message is written by "pietje puk", it will match the first mask.
  1705.  If a message is written by anyone else, it will match either of the masks.
  1706.  So a message always matches at least one of the masks. With the above
  1707.  example, all messages in the netmail area would be deleted.
  1708.  
  1709.  
  1710.  Finally, you can also combine several masks with several actions.
  1711.  
  1712.  Mask Gerard van Essen, 2:281/527.0, *, *, *, +s
  1713.  Mask *, *, Gerard van Essen, 2:281/527.0, *, +r
  1714.  Action File c:\msgs\oldmail.txt
  1715.  Action Delete
  1716.  
  1717.  This will write all received and sent netmail to a file, and then delete
  1718.  it.
  1719.  
  1720.  ┌─────────────────────────┬────────────────────────────────────────────
  1721.  │ NetMgr's scanning logic │
  1722.  └─────────────────────────┘
  1723.  
  1724.  For each message found in the netmail area, NetMgr will scan the defined
  1725.  masks (for a certain 'ScanDir', see below) and check whether any of them
  1726.  matches.
  1727.  
  1728.  As soon as a match is found, all 'Actions' for that 'Mask' are performed
  1729.  (you can have more than one action for each Mask, as you now know).
  1730.  
  1731.  After all these Actions are performed, NetMgr will *not* scan for any more
  1732.  matching masks. It will simply go to the next message in the netmail area
  1733.  and start scanning for a match for that next message again.
  1734.  
  1735.  This means, that if you have TWO masks that actually match a certain
  1736.  message, only the first one that is encountered will be found (and as a
  1737.  result only the actions that belong to that first mask will be performed).
  1738.  
  1739.  As an example, take these two mask/action combinations:
  1740.  
  1741.  Mask *, *, Pietje Puk, *, *, *
  1742.  Action Copy c:\fd\netmail
  1743.  
  1744.  Mask *, *, *, *, *, +c
  1745.  Action ReWrite *, *, *, *, *, -c
  1746.  
  1747.  Clearly, the user wants to reset all 'crash' bits with the second
  1748.  mask/Action combination.
  1749.  
  1750.  However, whenever a message to 'Pietje Puk' is encountered, NetMgr will
  1751.  perform the action for that mask (and copy the message to c:\fd\netmail)
  1752.  and then stop scanning.
  1753.  So in that case, the second mask will never be evaluated. Even if it does
  1754.  match (a crashmail message), the action for the second Mask will never be
  1755.  performed. If a message to Pietje Puk is marked as 'crash', it will be
  1756.  copied to the netmail area with the crash bit set.
  1757.  If you want to reset the crash bit, even for message to Pietje Puk, you
  1758.  can simply add the rewrite to the first mask as well, like this:
  1759.  
  1760.  Mask *, *, Pietje Puk, *, *, *
  1761.  Action ReWrite *, *, *, *, *, -c
  1762.  Action Copy c:\fd\netmail
  1763.  
  1764.  Mask *, *, *, *, *, +c
  1765.  Action ReWrite *, *, *, *, *, -c
  1766.  
  1767.  In this case, even messages to Pietje Puk will have their crash bit reset.
  1768.  Using this technique, anything you want can still be done. Just copy the
  1769.  Action statement and add them to the other masks as well.
  1770.  
  1771.  
  1772.  ┌────────────────────────┬──────────────────────────────────────────────
  1773.  │ eXtended Masks (XMASK) │
  1774.  └────────────────────────┘
  1775.  
  1776.  NetMgr offers another kind of mask: the eXtended mask (XMASK). As the
  1777.  name implies, these masks offer more than a standard mask. Xmasks allow
  1778.  the user to specify more criteria for the search.
  1779.  
  1780.  If this is the first time you are looking into NetMgr, it might be a
  1781.  good idea to either skip this section, or just glance through it a bit
  1782.  to see what is possible.
  1783.  You can do a lot with just standard masks, and it might be wise to play
  1784.  around with them a bit before going a step further and dive into
  1785.  extended masks as well.
  1786.  
  1787.  XMASKS take a bit more room than a standard mask. They can be used
  1788.  together with standard masks (even mixed within the same config).
  1789.  
  1790.  To define an extended mask, use the XMASK keyword. An XMASK definition
  1791.  always starts with this keyword, and always ends with a line with only
  1792.  'End' on it. Between these two lines, search criteria are defined.
  1793.  
  1794.  An example:
  1795.  
  1796.  Xmask
  1797.    from   Gerard van Essen
  1798.  End
  1799.  
  1800.  This defines an XMASK, that looks for messages that are FROM: 'Gerard
  1801.  van Essen'.
  1802.  
  1803.  You can specify more than one criterion. The number of criteria allowed
  1804.  for a mask is only limited by available memory.
  1805.  
  1806.  For a message to be a match, it must satisfy _all_ requirements that are
  1807.  defined. So, if you have:
  1808.  
  1809.  Xmask
  1810.    from   Gerard van Essen
  1811.    to     pietje puk
  1812.  End
  1813.  
  1814.  A message is only a match when it is from 'Gerard van Essen' _and_ to
  1815.  'pietje puk'.
  1816.  
  1817.  The following keywords can be used in an XMASK:
  1818.  
  1819.  from      - who the message is from
  1820.  to        - who the message is to
  1821.  subject   - the subject of the message
  1822.  attr      - attributes of a message (like +a-p etc, like a standard mask)
  1823.  kludge    - a search text to be found in the kludges of a message
  1824.  body      - a search text to be found in the body of a message
  1825.  
  1826.  bodybytes <n> - how many bytes of the message body must be searched to find
  1827.                  the string(s) specified to find in the body.
  1828.  bodylines <n> - how many lines of the body to search, or actually
  1829.                  paragraphs, separated by a CR (ASCII 13, '\r').
  1830.  
  1831.  orig      - origination address of the message (like 2:281/527.0 - always 4D)
  1832.  dest      - destination address of the message (like 2:281/527.0 - always 4D)
  1833.  
  1834.  olderwritten <n>   - 'Date written' of the message must be older than n days.
  1835.  olderprocessed <n> - 'Date processed' of the message must be older than n
  1836.                        days (JAM, Squish, SDM).
  1837.  olderread <n>      - 'Date msg read by recipient' of the message must be
  1838.                        older than n days (JAM only).
  1839.  
  1840.  
  1841.  When searching for a string (from, to, subject, body, kludges), you can
  1842.  also enclose a string in either single or double quotes. This gives you
  1843.  the opportunity to search for trailing and/or leading spaces.
  1844.  
  1845.  Even when quotes are used, the ~ (substring) and ! (NOT search) tokens
  1846.  are still supported, just like in normal MASKs. These tokens must be
  1847.  entered inside the quote, so "~gerard" will look for the substring
  1848.  'gerard' to be present anywhere.
  1849.  
  1850.  
  1851.  AND and OR searches.
  1852.  --------------------
  1853.  
  1854.  Specifying a certain keyword more than once, gives you an AND search. As
  1855.  mentioned before, _all_ requirements that are defined must be met. So
  1856.  specifying ...
  1857.  
  1858.  Xmask
  1859.    body "gerard"
  1860.    body "timed"
  1861.  End
  1862.  
  1863.  ... will look for messages that have 'gerard' AND 'timed' in the body.
  1864.  
  1865.  However, you can also do an OR search, by specifying more than one
  1866.  element on the same line, always enclosed in quotes and separated by the
  1867.  OR keyword, like this:
  1868.  
  1869.  Xmask
  1870.    body "gerard" OR "timed"
  1871.  End
  1872.  
  1873.  This will look for messages that have 'gerard' in the body, OR that have
  1874.  'timed' in the body.
  1875.  
  1876.  You can also do a similar thing with addresses:
  1877.  
  1878.  Xmask
  1879.    orig 2:*/*.* OR 1:*/*.*
  1880.  End
  1881.  
  1882.  This will look for message originating from either zone 2 or zone 1.
  1883.  You can also do an AND search with addresses:
  1884.  
  1885.  Xmask
  1886.    orig 2:*/*.*
  1887.    orig !2:281/527.*
  1888.  End
  1889.  
  1890.  This will look for messages originating from zone 2, and NOT from node
  1891.  2:281/527 or any of its points.
  1892.  
  1893.  NetMgr also allows the OR construction for attributes. So something
  1894.  like this is also possible:
  1895.  
  1896.  XMASK
  1897.      From Gerard van Essen
  1898.      Orig 2:281/527.0
  1899.      Attr +c OR +a+l OR +f-c
  1900.  END
  1901.  
  1902.  This mask will match all messages that are flavoured crash, or are
  1903.  flavoured 'attach' and 'local', or flavoured 'request' but NOT crash.
  1904.  
  1905.  Please note that this construction is not valid for the attributes that
  1906.  need to search the nodelist (# and @). You can specify these attributes
  1907.  like this, but they are checked once, separately from the other
  1908.  attributes.
  1909.  So you cannot specify:
  1910.  
  1911.  Attr +c-@ OR -c+@
  1912.  
  1913.  or something similar. You can only specify these attributes once and they
  1914.  will then be carried over to all other attribute masks. In other words,
  1915.  specifying this:
  1916.  
  1917.  Attr +c-@ OR +l
  1918.  
  1919.  will actually be expanded to:
  1920.  
  1921.  Attr +c-@ OR +l-@
  1922.  
  1923.  
  1924.  Using files as input for a search item.
  1925.  ---------------------------------------
  1926.  
  1927.  Finally, for from, to, subject, kludges, body, orig and dest, you can
  1928.  also specify a filename as input. The filename must be preceded by a
  1929.  '<', like this:
  1930.  
  1931.  to  <c:\data\names.txt
  1932.  
  1933.  The file itself should consist of a number of lines, all with one
  1934.  string/address to look for. If any of the strings/addresses are found,
  1935.  this will be considered a match (so that is an 'OR' search).
  1936.  
  1937.  In the case of the example with names.txt above, the file could look
  1938.  like this:
  1939.  
  1940.  -=-
  1941.  Areafix
  1942.  Areamgr
  1943.  SQafix
  1944.  -=-
  1945.  
  1946.  Any message addressed to 'Areafix', OR 'Areamgr' OR 'SQafix' will be a
  1947.  match.
  1948.  Leading and trailing spaces on a line in the file will be stripped.
  1949.  Quotes are not allowed. However, use of the '~' and '!' tokens _is_
  1950.  allowed.
  1951.  
  1952.  
  1953.  Using an XMASK.
  1954.  ---------------
  1955.  
  1956.  One or more XMASKs must be combined with one or more actions (they are
  1957.  just like a standard MASK in this respect):
  1958.  
  1959.  XMASK
  1960.    from  Gerard van Essen
  1961.  End
  1962.  Action Delete
  1963.  
  1964.  So apart from the fact that an XMASK is spread over more than one line,
  1965.  using it a the same as a standard MASK.
  1966.  
  1967.  You can also define an XMASK, give it a name, and use it later on in the
  1968.  .cfg file. To define an XMASK, use the 'DefineXmask' keyword:
  1969.  
  1970.  DefineXmask <mask name>
  1971.    ...
  1972.    <mask criteria>
  1973.    ...
  1974.  End
  1975.  
  1976.  Like this:
  1977.  
  1978.  DefineXmask personal
  1979.     to "Gerard van Essen" OR "gerard van.essen" OR "art" OR "Geer art"
  1980.  End
  1981.  
  1982.  Later on, you can then use the XMASK named personal again:
  1983.  
  1984.  XMASK personal
  1985.  Action Move $c:\mail\personal
  1986.  
  1987.  This gives you the opportunity to make the Mask/Action combination a bit
  1988.  more compact and (hopefully) clear.
  1989.  
  1990.  The ability to define XMASKs without a directly connected action is also
  1991.  exploited to allow posting messages from the command line (see special
  1992.  section about this).
  1993.  
  1994.  
  1995.  ┌────────────────────────────────────┬─────────────────────────────────
  1996.  │ Areas to scan: the ScanDir keyword │
  1997.  └────────────────────────────────────┘
  1998.  
  1999.  There's one more important keyword in NetMgr.cfg, and that's the ScanDir
  2000.  keyword.
  2001.  
  2002.  This will give NetMgr an area to Scan for messages that match a Mask.
  2003.  
  2004.  Example:
  2005.  
  2006.  ScanDir c:\fd\netmsgs
  2007.  
  2008.  The default is a *.MSG area, but:
  2009.  
  2010.  A '$' in front of an area indicates a Squish style area.
  2011.  A '!' in front of an area indicates a JAM style area.
  2012.  A '#' in front of an area indicates a Hudson style area.
  2013.  
  2014.  You can have as many of these as you like, NetMgr will scan each and every
  2015.  one of them. But, just as a certain action is related to a certain mask,
  2016.  certain action/mask combinations are related to a ScanDir statement.
  2017.  
  2018.  When a ScanDir statement is found in NetMgr.cfg, all Mask/Action
  2019.  combinations following that ScanDir up to the next ScanDir statement will
  2020.  (only) be valid for that particular ScanDir.
  2021.  
  2022.  ScanDir c:\fd\netmail
  2023.  
  2024.  Mask A
  2025.  Action ..
  2026.  Action ..
  2027.  
  2028.  Mask B
  2029.  Action ..
  2030.  
  2031.  Mask C
  2032.  Action ..
  2033.  
  2034.  ScanDir c:\fd\usenet
  2035.  
  2036.  Mask D
  2037.  Action ..
  2038.  
  2039.  In the above example, c:\fd\netmail will be scanned for Mask A, B and C,
  2040.  but not for Mask D.
  2041.  c:\fd\usenet will (only) be scanned for Mask D.
  2042.  
  2043.  You can also specify more than one ScanDir, followed by one or more Masks.
  2044.  All ScanDirs will be scanned for those masks.
  2045.  
  2046.  ScanDir c:\fd\usenet
  2047.  ScanDir $c:\fd\netmail
  2048.  
  2049.  Mask E
  2050.  Action
  2051.  
  2052.  In the above example, both c:\fd\usenet and $c:\fd\netmail will be scanned
  2053.  for mask E.
  2054.  
  2055.  
  2056.  Renumbering *.MSG areas.
  2057.  ------------------------
  2058.  
  2059.  For *.MSG areas, you can specify the optional 'renum' keyword when you
  2060.  define the area using the 'ScanDir' keyword.. After scanning the area,
  2061.  NetMgr will then renumber the area (and adjust the lastread pointer
  2062.  when necessary).
  2063.  
  2064.  Example of such a definition:
  2065.  
  2066.  ScanDir c:\fd\netmail renum
  2067.  
  2068.  
  2069.  ┌───────────────────────┬───────────────────────────────────────────
  2070.  │ Automatic AKAmatching │
  2071.  └───────────────────────┘
  2072.  
  2073.  NetMgr has AKAmatching capabilities, that can be used in several
  2074.  places.
  2075.  
  2076.  In order to let NetMgr do this, add all the addresses you might want to
  2077.  use to NetMgr.cfg (multiple 'homeaddress' statements are allowed).
  2078.  By default, NetMgr can do the matching for you without any further info.
  2079.  
  2080.  This option is interesting if you have more than 1 address.
  2081.  NetMgr can then be ordered to find the most appropriate address to use
  2082.  when writing a message.
  2083.  
  2084.  Say, for example, that you have two addresses: 2:281/527 and
  2085.  60:100/112.
  2086.  
  2087.  If you write a messages to 2:500/133, you probably want to use
  2088.  your 2:281/527 address.
  2089.  If you write a message to 60:100/1, you probably want to use
  2090.  your 60:100/112 address.
  2091.  
  2092.  In this case, NetMgr would try to find the address (AKA) that 'matches'
  2093.  the destination address best.
  2094.  
  2095.  It first looks for a matching zone, and if more than one match
  2096.  is found, it'll try to find an address where both 'zone' and
  2097.  'net' match. If there is still more than one match after that,
  2098.  it will just take the first match.
  2099.  
  2100.  If you want to make exceptions to these matching rules, or if you want to
  2101.  do AKAmatching _within_ a certain net, you can force NetMgr to use
  2102.  certain AKA by using the AKAFORCE keyword in NetMgr.cfg.
  2103.  
  2104.  Where does it work?
  2105.  
  2106.  First of all, NetMgr can pick the correct AKA to use when generating a
  2107.  new message using one of the BOUNCE, XBOUNCE, MakeMsg or Forward
  2108.  actions.
  2109.  
  2110.  In order to let NetMgr pick an appropriate address, use '@myaka' instead
  2111.  of a 4D address. For example:
  2112.  
  2113.  Action Bounce @myaka c:\txt\bounce.txt
  2114.  
  2115.  Or:
  2116.  
  2117.  Action Xbounce c:\txt\bounce.txt The Bouncer, @myaka, *, *, Go away!, *
  2118.  
  2119.  You can also use the AKA matching with REWRITE. This is probably only
  2120.  useful when you are currently using NetMgr already to do AKAmatching with
  2121.  several masks. You may now be able to do it with one mask/action:
  2122.  
  2123.  Mask Gerard van Essen, *, *, *, *, +l
  2124.  Action Rewrite *, @myaka, *, *, *, *
  2125.  
  2126.  
  2127.  Finally, you can also use it for the PackMail and MoveMail actions, for
  2128.  the origination address:
  2129.  
  2130.  Action PackMail @myaka *
  2131.  
  2132.  This will pack all mail directly to their destination, and use a matching
  2133.  AKA in the packet header as origination address. Please note that this
  2134.  (obviously!) does not have any effect on the addresses used within the
  2135.  packed messages! Only the packet header is affected by this!
  2136.  
  2137.  
  2138.  ┌──────────────────────────────┬────────────────────────────────────
  2139.  │ Other keywords in netmgr.cfg │
  2140.  └──────────────────────────────┘
  2141.  
  2142.  
  2143.  HOME
  2144.  ====
  2145.  
  2146.  Example:
  2147.  
  2148.  Home 2:281/527.0
  2149.  
  2150.  Your address. The zone is used as a default value for 'zoneless' messages
  2151.  (only *.MSG style areas).
  2152.  It is also used for Binkley style netmail packing: netmail for the zone of
  2153.  the 'home' address is placed in the directory defined with the 'OutBound'
  2154.  keyword in NetMgr.cfg.
  2155.  
  2156.  It is allowed to put in this statement more than once. This can be
  2157.  useful if you want to use NetMgr's AKAmatching capabilities (see
  2158.  special section on AKAmatching elsewhere in this document).
  2159.  
  2160.  
  2161.  ORIGIN
  2162.  ======
  2163.  
  2164.  Origin   NetMgr, (c) 1992-'94  Gerard van Essen
  2165.  
  2166.  
  2167.  An origin line, will be used for EchoCopy and EchoMove.
  2168.  
  2169.  INTLFORCE
  2170.  =========
  2171.  
  2172.  If you add this to your NetMgr.cfg, timEd will _force_ an INTL kludge
  2173.  on any netmail it somehow writes (this includes messages touched
  2174.  through a REWRITE, COPY/MOVE etc).
  2175.  
  2176.  
  2177.  AKAFORCE
  2178.  ========
  2179.  
  2180.  Format:
  2181.  
  2182.  AKAFORCE <mask> <address to use>
  2183.  
  2184.  With this statement, you can influence NetMgr's AKAmatching
  2185.  capabilities. In several places, you can let NetMgr do AKAmatching
  2186.  automatically. However, in some cases the automatic matching might not
  2187.  come up with the address you wanted. With AKAforce, you can force
  2188.  NetMgr to use a certain address in certain situations.
  2189.  
  2190.  example:
  2191.  
  2192.  AKAFORCE 50:*/*.* 49:500/1
  2193.  
  2194.  This means: always use 49:500/1 as address when mail is sent to any zone
  2195.  50 address. This forcing will take precedence over 'automatic'
  2196.  akamatching.
  2197.  
  2198.  
  2199.  LOG
  2200.  ===
  2201.  
  2202.  Log c:\tc\netmgr\netmgr.log
  2203.  
  2204.  
  2205.  The location and name of your logfile. Leave this keyword out if you don't
  2206.  want a logfile.
  2207.  
  2208.  
  2209.  FRODOLOG
  2210.  ========
  2211.  
  2212.  If the keyword 'Frodolog' is included in NetMgr.cfg, NetMgr will generate
  2213.  a logfile that looks like the logfile that FrontDoor generates. If you
  2214.  leave this keyword out, NetMgr will generate a Binkley style logfile.
  2215.  
  2216.  
  2217.  JAMLOG
  2218.  ======
  2219.  
  2220.  For JAM areas, NetMgr now write NETMAIL/ECHOMAIL.JAM. Add the keyword
  2221.  'JAMLOG' to NetMgr.cfg and give the directory to put the files in.
  2222.  
  2223.  Example:
  2224.  
  2225.  JamLog c:\fd\msgbase\
  2226.  
  2227.  
  2228.  HUDSONPATH
  2229.  ==========
  2230.  
  2231.  The location of your Hudson message base. Use this only if you actually
  2232.  have a Hudson base.
  2233.  
  2234.  Hudsonpath C:\Tosser\Msgbase
  2235.  
  2236.  
  2237.  NODELIST
  2238.  ========
  2239.  
  2240.  This gives the path to the Version7 nodelist. You may need this keyword if
  2241.  you want to use the special nodelist attributes ('@' and '#') that NetMgr
  2242.  supports to check whether an address is listed in the nodelist or not.
  2243.  Leave this out if you do not have a Version 7 nodelist.
  2244.  
  2245.  
  2246.  FDNODELIST
  2247.  ==========
  2248.  
  2249.  This gives the path to the Frontdoor or Intermail nodelist. You may need
  2250.  this keyword if you want to use the special nodelist attributes ('@' and
  2251.  '#') that NetMgr supports to check whether an address is listed in the
  2252.  nodelist or not. Leave this out if you do not have a FrontDoor or
  2253.  Intermail nodelist.
  2254.  
  2255.  
  2256.  GIGONODELIST
  2257.  ============
  2258.  
  2259.  This gives the path to the GIGO nodelist index. You may need this keyword
  2260.  if you want to use the special nodelist attributes ('@' and '#') that
  2261.  NetMgr supports to check whether an address is listed in the nodelist or
  2262.  not. Leave this out if you do not have a GIGO nodelist. NetMgr includes a
  2263.  special compiler made by Jason Fesler (1:203/7707) to generate GIGO
  2264.  indexes.
  2265.  
  2266.  The GIGO index is pretty small (less than 100 kB for the current world
  2267.  nodelist), so if you do not have a Version7 nodelist nor a Frontdoor
  2268.  nodelist, you might want to make one.
  2269.  
  2270.  
  2271.  NODELISTCACHE
  2272.  =============
  2273.  
  2274.  To speed up nodelist access to regularly checked nodes, there is a simple
  2275.  cache system for the nodelist checking: the last few nodes that were
  2276.  checked in the nodelist will be cached in a small file that is saved to
  2277.  disk at exit. For a new run, NetMgr will read this file and keep it in
  2278.  memory to check it before actually doing a lookup in the nodelist on
  2279.  disk. The number of nodes that are 'remembered' in such a way is
  2280.  configurable with the keyword 'CacheSize' (see below).
  2281.  
  2282.  The 'NodeListCache' keyword gives a path (not a filename, just the path)
  2283.  to store this 'cache file' with nodes. The name of this file will always
  2284.  be 'nodes.buf'.
  2285.  
  2286.  * Important: When you update/recompile your nodelist, erase the 'cache
  2287.    file', as the data that is cached may be invalid after the nodelist
  2288.    update! A node that is marked as 'unlisted' in the cache, may actually
  2289.    be listed after the nodelist is updated, and v.v.!
  2290.  
  2291.  
  2292.  CACHESIZE
  2293.  =========
  2294.  
  2295.  With this keyword you can define the number of nodes to keep in the
  2296.  nodelist cache. If you usually have mail to 100 different addresses in
  2297.  your netmail area, set it to at least 100.
  2298.  
  2299.  Example:
  2300.  
  2301.  CacheSize 250
  2302.  
  2303.  
  2304.  OUTBOUND
  2305.  ========
  2306.  
  2307.  This has to point to your Binkley style primary outbound directory. It is
  2308.  required if you want to use the netmail packing capabilities that NetMgr
  2309.  offers (PackMail action).
  2310.  
  2311.  NetMgr can create names for outbound directories other than the default
  2312.  zone (names like: C:\BT\OUT.006) itself, so one 'OutBound' statement is
  2313.  all you need to specify in order to send mail to all zones.
  2314.  Domains are not supported.
  2315.  
  2316.  Example:
  2317.  
  2318.  OutBound c:\bt\out
  2319.  
  2320.  If my the zone of my primary address (as specified in the Home keyword in
  2321.  NetMgr.cfg) is for example 2:, this will put all mail for zone 2: in the
  2322.  directory "c:\bt\out". Mail for zone 1 will be put in "c:\bt\out.001" etc.
  2323.  
  2324.  
  2325.  ┌──────────────────────────────────────────────────┬───────────────────────
  2326.  │ Posting files as a message from the command line │
  2327.  └──────────────────────────────────────────────────┘
  2328.  
  2329.  In order to post a file as a message, use the POST command on the
  2330.  commandline.
  2331.  
  2332.  To do a post, you first need to define an XMASK with DefineXMask in
  2333.  NetMgr.cfg. In that mask, specify "from", "to", "subject", and "orig" for
  2334.  echomail messages. For netmail messages, you need to add "dest" as well.
  2335.  Adding 'attr' is allowed, but not required. If you don't specify any
  2336.  attributes, NetMgr will default to (only) the 'local' attribute.
  2337.  
  2338.  When generating the message, NetMgr will use the info in this XMASK to
  2339.  generate the header for the message.
  2340.  
  2341.  On the command line, you specify which xmask to use, what file to use as
  2342.  body, the area to post in, and whether or not the area is an echomail
  2343.  area. To do this, the following command line options are available:
  2344.  
  2345.  -x : specify XMASK to use
  2346.  -a : specify area to use (use leading !, # or $ to indicate msgbase format)
  2347.  -e : specified area is an echomail area
  2348.  -f : ASCII file to use as body for the message
  2349.  
  2350.  Full example:
  2351.  
  2352.  Provided the following XMASK is defined in NetMgr.cfg:
  2353.  
  2354.  DefineXmask netpost
  2355.  
  2356.     from    Gerard van Essen
  2357.     to      NetMgr User
  2358.     subject Answer to your query
  2359.     orig    2:281/527.0
  2360.     dest    2:2/0.0
  2361.  
  2362.  End
  2363.  
  2364.  The following command line...
  2365.  
  2366.  NetMgr POST -xnetpost -a$c:\fd\netmail -fc:\txt\canned.rep
  2367.  
  2368.  ... would generate a new netmail message in the Squish style area
  2369.  'c:\fd\netmail', with the header specified (i.e.: to 'NetMgr User', from
  2370.  'Gerard van Essen' etc), and with the textfile 'c:\txt\canned.rep' as
  2371.  the body.
  2372.  
  2373.  NetMgr will start up, read the config, open the area, post the message,
  2374.  and then exit immediately (without scanning the netmail area as is
  2375.  normally done).
  2376.  When the -e command line parameter is used, NetMgr will add tear- and
  2377.  origin lines as well.
  2378.  
  2379.  Provided the following XMASK is defined in NetMgr.cfg:
  2380.  
  2381.  DefineXmask rules
  2382.  
  2383.     from    Moderator
  2384.     to      All
  2385.     subject The monthly rules
  2386.     orig    2:281/527.0
  2387.  
  2388.  End
  2389.  
  2390.  The following command line...
  2391.  
  2392.  NetMgr POST -xrules -a!c:\echo\artware -fc:\txt\artware.rul -e
  2393.  
  2394.  ... would generate a new echomail message in the JAM style area
  2395.  'c:\echo\artware', with the header specified (i.e.: to 'All', from
  2396.  'Moderator' etc), and with the textfile 'c:\txt\artware.rul' as the body.
  2397.  
  2398.  
  2399.  ┌───────────────────────────────────┬─────────────────────────────────────
  2400.  │ Binkley style outbound management │
  2401.  └───────────────────────────────────┘
  2402.  
  2403.  NetMgr also offers some outbound management capabilities, usable from
  2404.  the command line. You can use one of the following commands on the
  2405.  command line:
  2406.  
  2407.  ■ POLL   : create a poll packet for a certain node.
  2408.  ■ GET    : create a filerequest for a certain node.
  2409.  ■ UPDATE : create an update request for a certain node.
  2410.  ■ SEND   : create a file attach for a certain node.
  2411.  ■ CHANGE : change mail status for mail waiting for a certain node.
  2412.  
  2413.  To support this, the following command line options are used:
  2414.  
  2415.  -s  : Status (also called 'flavour') of request/attach.
  2416.  -n  : New status for mail (used for 'CHANGE').
  2417.  -p  : Password to use for file request.
  2418.  -#  : Node address of node to request files from / send files to.
  2419.  -f  : File to send/request.
  2420.  
  2421.  The 'POLL'   command needs: -# and -s.
  2422.  The 'GET'    command needs: -#, -f and -s (optional: -p).
  2423.  The 'UPDATE' command needs: -#, -f and -s (optional: -p).
  2424.  The 'SEND'   command needs: -#, -f and -s.
  2425.  The 'CHANGE' command needs: -#, -s and -n.
  2426.  
  2427.  For the '-s' and '-n' options, the following flavours can be used:
  2428.  normal, crash, imm, hold, dir.
  2429.  
  2430.  Examples:
  2431.  
  2432.  NetMgr POLL -#2:281/527 -scrash
  2433.  
  2434.  Poll node 2:281/527, crash status.
  2435.  
  2436.  
  2437.  NetMgr GET -#2:500/133 -fnewfiles -shold -psecret
  2438.  
  2439.  Request from node 2:500/133, with 'hold' status, the file 'NEWFILES' and
  2440.  use 'secret' as password for this request.
  2441.  
  2442.  
  2443.  NetMgr SEND -fc:\autoexec.bat -simm -#1:138/211
  2444.  
  2445.  Attach the file c:\autoexec.bat, with 'immediate' status, to 1:138/211.
  2446.  
  2447.  
  2448.  NetMgr CHANGE -snormal -ncrash -#2:281/527.5
  2449.  
  2450.  Change the flavour of all mail destined for 2:281/527.5 flavoured
  2451.  'normal' to a new flavour of 'crash'.
  2452.  
  2453.  For any of the above to work, you need to have the 'OutBound' keyword
  2454.  defined in NetMgr.cfg.
  2455.  
  2456.  
  2457.  ┌───────────────────────────────┬─────────────────────────────
  2458.  │ Other Command line parameters │
  2459.  └───────────────────────────────┘
  2460.  
  2461.  There are three other command line parameters:
  2462.  
  2463.  -D
  2464.  
  2465.  For 'debugging' purposes you can start netmgr with the -d command line
  2466.  switch. This will send NetMgr's interpretation of your config file to
  2467.  stdout.
  2468.  While scanning your netmail area, it will also send some info about the
  2469.  headers of the messages to stdout.
  2470.  You can easily redirect it to a file (netmgr -d > debug.txt) for
  2471.  inspection.
  2472.  
  2473.  In case of any problems with NetMgr, use this switch to determine what
  2474.  exactly is the problem!
  2475.  
  2476.  --
  2477.  
  2478.  -C
  2479.  
  2480.  Here you can specify the name of an alternative Config file. For example:
  2481.  
  2482.  NetMgr -Cc:\netmgr\mycfg.txt
  2483.  
  2484.  --
  2485.  
  2486.  -Q
  2487.  
  2488.  Enables 'quiet' mode. Hardly anything is written to the screen in this
  2489.  case. This speeds up processing a bit.
  2490.  
  2491.  
  2492.  ┌─────────────┬─────────────────────────────────────────────────────────
  2493.  │ Errorlevels │
  2494.  └─────────────┘
  2495.  
  2496.  Three possibilities:
  2497.  
  2498.  0   : No errors, no work done.
  2499.  1   : No errors, something done (move, copy, bounce or whatever. Anything.)
  2500.  254 : Error occurred (out of memory, config error etc).
  2501.  
  2502.  
  2503.  
  2504.  Some bits and pieces..:
  2505.  
  2506.  * NetMgr was compiled using Watcom C/C++ v10.5.
  2507.  
  2508.  * NetMgr source code is not and will not be available.
  2509.  
  2510.  
  2511.  
  2512.  The author can be reached...
  2513.  
  2514.  The best thing is to hook into the ARTWARE support echo. I give support for
  2515.  my products there. It can be found in several places.
  2516.  It's also on the American Backbone!
  2517.  
  2518.  
  2519.  Gerard van Essen
  2520.  FidoNet: 2:281/527
  2521.  Contrast BBS, 31-70-3234903 (V34+, V32bis, V32Terbo, V.FC, HST 16k8). The
  2522.  telephone number will change in june 1996, although the new number is not
  2523.  known yet.
  2524.  Internet: art@users.toolnet.org
  2525.  
  2526.  
  2527.  Have fun.
  2528.  
  2529.